0

我在 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 中获取事件,并打开警报。

4

1 回答 1

0

用于Custom Adaptor您的列表并在适配器的getView()方法中为复选框设置侦听器。例如,请参阅Android ListView 示例这个

于 2013-03-28T19:31:44.090 回答