订制ListeView界面
来源:互联网 发布:所有网络命令 编辑:程序博客网 时间:2024/04/28 07:25
新建一个listeview项目
修改activity_main.xml中的代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent"> </ListView></RelativeLayout>
在res/layout中新建一个string_item.xml文件
插入两个TextView
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/stringtext1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/stringtext2" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>
定义一个实体类,作为ListView适配器的适配类型
public class string_item {public String stringtext1;public String stringtext2;public String getStringtext1() { return stringtext1;}public String getStringtext2() { return stringtext2;}public string_item(String stringtext1, String stringtext2) { this.stringtext1 = stringtext1; this.stringtext2 = stringtext2;}}
创建一个自定义适配器并将泛型指定为string_item类
package com.example.adapter;import java.util.List;import com.example.action.string_item;import com.example.listview.R;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.TextView;public class StringAdapter extends ArrayAdapter<string_item> {private int resourceId; public StringAdapter(Context context, int resource, List<string_item> objects) { super(context, resource, objects); // TODO Auto-generated constructor stub this.resourceId=resource; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub string_item item=getItem(position);//获取当前项的string_item实例 View view=LayoutInflater.from(getContext()).inflate(resourceId, null); TextView stringtext1=(TextView) view.findViewById(R.id.stringtext1); TextView stringtext2=(TextView) view.findViewById(R.id.stringtext2); stringtext1.setText(item.getStringtext1()); stringtext2.setText(item.getStringtext2()); return view; }}
修改MainActivity中的代码
public class MainActivity extends Activity {private List<string_item> stringitem=new ArrayList<string_item>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initString();//初始化string_item类的数据 StringAdapter adapter=new StringAdapter(MainActivity.this,R.layout.string_item ,stringitem); ListView listView=(ListView) findViewById(R.id.listView); listView.setAdapter(adapter); }private void initString(){ for (int i = 0; i < 100; i++) { string_item string=new string_item(i+"", (i+1)+""); stringitem.add(string); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }}
适配器还可以优化一下,代码如下
public class StringAdapter extends ArrayAdapter<string_item> {private int resourceId; public StringAdapter(Context context, int resource, List<string_item> objects) { super(context, resource, objects); // TODO Auto-generated constructor stub this.resourceId=resource; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub string_item item=getItem(position);//获取当前项的string_item实例 View view; ViewHolder viewHolder; if(convertView==null){ view=LayoutInflater.from(getContext()).inflate(resourceId, null); viewHolder=new ViewHolder(); viewHolder.stringtext1=(TextView) view.findViewById(R.id.stringtext1); viewHolder.stringtext2=(TextView) view.findViewById(R.id.stringtext2); view.setTag(viewHolder);//将viewholder存储在view中 }else { view=convertView; viewHolder=(ViewHolder) view.getTag();//重新获取viewholder } viewHolder.stringtext1.setText(item.getStringtext1()); viewHolder.stringtext2.setText(item.getStringtext2()); return view; } class ViewHolder{ TextView stringtext1; TextView stringtext2; }}
0 0
- 订制ListeView界面
- 为WINCE5订制系统界面
- centos开机界面的自己订制
- 管理界面重新订制卡片窗体关闭的刷新事件
- glog的订制
- 订制提示框
- Android Toast订制
- 订制自己的KernelIoControl
- Label订制NSMutableParagraphStyle /NSParagraphStyle
- ListView的私人订制
- 仿“饿了么”订餐app界面实现
- 随心订制linux透明防火墙
- 随心订制linux透明防火墙
- Js订制自己的AlertBox
- 随心订制linux透明防火墙
- [转]订制CentOS自安装光盘
- ios之keyboard订制键盘
- js订制自己的右键菜单
- Open vSwitch(OvS)源代码分析之工作流程(flow流表查询)
- 跟我一起写 Makefile
- STM32——I2C
- maven项目加载本地jar包的问题
- Hbase学习,命令
- 订制ListeView界面
- 第1周 项目(A)-5求三个数的最大值
- linux 配置mysql 自动备份任务
- js的页面初始化,修改div的值,查询多选框的val
- Android程序安装后应用图标不显示
- android 图片压缩
- 多线程:自动释放池(含一个经典面试题)
- CSS:line-height:150%与line-height:1.5的区别是什么?
- 开发过程中文件的读写