该组件有三种设计方案,每种设计方案以相对应的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)