java代码:<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="horizontal"android:layout_width="fill_parent"android:layout_height="wrap_content"><CheckBoxandroid:id="@+id/cb"android:layout_width="wrap_content"android:layout_height="wrap_content"/><TextViewandroid:id="@+id/tv"android:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout>
java代码:ListView lv=(ListView)findViewById(R.id.lv);ArrayList<Map<String,String>> table=new ArrayList<Map<String,String>>();Map<String,String> item=new HashMap<String,String>();item.put("check", "true");item.put("text", "HAHA");table.add(item);//要显示的数据,其实就是Cursor,不过Cursor对应的就是SimpleCursorAdapter了SimpleAdapter adapter=new SimpleAdapter(this,table,R.layout.item,new String[]{"check","text"},new int[]{R.id.cb,R.id.tv});//对应参数Context,int(项布局),String[ ](一行中用到的字段),int[ ](每个字段对应的控件id)adapter.setViewBinder(new SimpleAdapter.ViewBinder() {@Overridepublic boolean setViewValue(View view, Object data , String textRepresentation) {//自定义的数据绑定方式,若返回false,则Android会自动选择绑定方式if(view.getId()==R.id.cb){ //根据id判断View类型String str=(String)data;CheckBox cb=(CheckBox)view;if(str.equals("true"))cb.setChecked(true);elsecb.setChecked(false);//数据绑定cb.setOnClickListener(new OnClickListener(){//添加事件响应@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubCheckBox cb=(CheckBox)arg0;setTitle(Boolean.toString(cb.isChecked()));}});}else if(view.getId()==R.id.tv){String str=(String)data;TextView tv=(TextView)view;tv.setText(str);}return true;}});lv.setAdapter(adapter);