之前在练练ListView的时候就有个
BaseAdapter ba = new BaseAdapter() {
用Adapter来绑数据的方法,该方法中
LinearLayout ll=new LinearLayout(MainActivity.this);
用append的方式追加了文字,
最后return 这个ll对象,
很像html的createElement那样用java构建布局,
onCreate方法内部最后在ListView实例上lv绑定数据:
lv.setAdapter(ba);
有的时候,光用Adapter还不够,需要组织好传入的数据,比如自己构建list
public List<? extends Map<String,Object>> list=new ArrayList<Map<String,Object>>();; int rowCounter = drawable.length;
for(int i =; i< rowCounter; i++){
HashMap<String,Object> hmap = new HashMap< String,Object>();
hmap.put("col1",drawableIds[i]);
hmap.put("col2",this.getResources().getString(nameId[i] ));
hmap.put("col3",this.getResources().getString(msgIds[i] ));
list.add(hmap);
}
return list;
} //Adapter
...onCreate()...
{
GridView gv(GridView)this.findViewById(R.id.GridView01);
SimpleAdapter sca = new SimpleAdapter(
this,
generateDataList(),
R.layout.grid row,
new String[]{"col1","col2","col3"},
new int[]{R.id.ImageView01,R.id....}
};
gv.setAdapter(sca);
此处有三列,对应了一个设计了三列的GridView布局。
<pre><LinearLayout ......>
<TextView... />
<GridView
android:id="@+id/GridView01"
android:layout_height="fill_parent"
android:verticalSpacing="5dip"
android:horizozntalSpacing="5dip"
android:stretchMode="columnWidth" />
</LinearLayout></pre>
其他部分和练练(十)差不多,可以尝试将(十)也改成list绑定数据。