2013-03-28 22 views
0

我取得了XML安卓:ListView和事件的每個項目

<?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); 

     } 
... 
} 

我怎樣才能得到每個複選框的事件?例如,如果用戶點擊複選框,程序必須從第三個項目的複選框中獲取事件,並打開警報。

回答