我在xml中制作了自定义列表视图
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
... />
<TextView
... />
<TextView
... />
<CheckBox
...
/>
</RelativeLayout>
我活动的一部分:
public class SPMMainActivity extends Activity {
private ArrayList <HashMap<String, Object>> myBooks;
private static final String KEY1 = "key1";
private static final String KEY2 = "key2";
private static final String KEY3 = "key3";
private static final String CHECK = "check";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spmmain);
schedule_listview = (ListView) findViewById(R.id.MainActivity_schedule);
myBooks = new ArrayList<HashMap<String,Object>>();
HashMap<String, Object> hm;
hm = new HashMap<String, Object>();
hm.put(KEY1, "1First");
hm.put(KEY2, "test");
hm.put(KEY3, "test2");
hm.put(CHECK, Boolean.FALSE);
myBooks.add(hm);
hm = new HashMap<String, Object>();
hm.put(KEY1, "Second");
hm.put(KEY2, "test3");
hm.put(KEY3, "test4 ");
hm.put(CHECK, Boolean.TRUE);
myBooks.add(hm);
SimpleAdapter adapter = new SimpleAdapter(this,
myBooks,
R.layout.mainactivity_schedule,
new String[]{
KEY1,
KEY2,
KEY3,
CHECK
},
new int[]{
R.id.text1,
R.id.text2,
R.id.text3,
R.id.checkBox1}
);
schedule_listview.setAdapter(adapter);
schedule_listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
registerForContextMenu(schedule_listview);
}
...
}
如何从每个CheckBox获取事件?例如,如果用户单击复选框,程序必须从第三项的CheckBox中获取事件,然后打开警报。
答案 0 :(得分:0)
使用Custom Adaptor
列表,并在调制解调器的getView()
方法中设置侦听器复选框。例如,请参阅Android ListView Example或this one。