该组件有三种设计方案,每种设计方案以相对应的adapter定义,有ArrayAdapter,SimpleAdapter,自定义adapter三种方案。
1.ArrayAdapter:嵌入简单的字符串,文本等。
首先在xml中定义ListView组件:
然后编写对应的ArrayAdapter:操作字符文本:
Private ListView list;
Private ArrayAdapter adapter;
Private List<String> values;
Adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,values);
//通过adapter把数据和xml(ListView)绑定.
List.setAdapter(adapter);
2.SimpleAdapter:对页面布局文件可进行简单的编辑。
第1步,设计ListView:
Activity_main.xml:同上图
接着创建一个xml文件(list_line.xml)进行布局设计。
第2步:编写SimpleAdapter:
Private ListView list;
Private SimpleAdapter adapter;
Private List<Map<String,Object>> values;
Adapter = new SimpleAdapter(this,values,R.layout.list_line,new String[]{key1,key2,..},
new value[]{R.id....});
list.setAdapter(adapter);
3.自定义Adapter :自定义布局,插入图片,文本等
第1步:设计ListView。
Activity_main.xml:同上图。
接着创建xml(list_view.xml),布局。
第2步:编写自定义adapter
一般使用TextView来存放静态图片,使用ImageView存放动态图片
创建自定义adapter类并继承BaseAdapter:
Public class MyAdapter extends BaseAdapter{
Private Context ctx;
Private List<Map<String, Object>> values;
Public MyAdapter(Context ctx,List<Map<String,Object>> values){
This.ctx=ctx;
This.values=values;
}
@Override
Public int getCount(){}
Public Objec getItem(int position){}
Public long getItemId(int position){}
Public View getView(int position,View contextView, ViewGroup parent){
If(contextView==null) {
contextView = LayoutInflater.from(ctx).inflate(R.layout,list_view,null);
<span style="white-space:pre"> </span>//设置lListView中每一行的宽和高的变量值
<span style="white-space:pre"> </span>contextView.setLayoutParams(new AbsListView.LayoutParams(ViewGroup.layoutparams.Match_PARENT,Globlas.SCREEN_HEIGHT/8));
}
.........
//设置图片的高
Img.setlayoutParams().height = Globals.SCREEN_HEIGHT/10;
}
}
第3步:绑定
Private ListView list;
Private MyAdapteradapter;
PrivateList<Map<String,Object>> values;
Adapter = newMyAdapter(this,values};
List.setAdapter(adapter)