Java核心代码:
package com.example.demolistview1; import android.app.ListActivity; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; public class MultipleListViewActivity extends ListActivity { private static final String[] DATA = { "开始加班了", "哈哈哈", "不告诉你们", "就是不告诉你们呀!", "Hello World!", "java", "C#", "item1", "item2", "apple", "test" }; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, DATA); // 使用ListActivity中的setListAdapter setListAdapter(arrayAdapter); // 获取ListActivity中的ListView final ListView listView = getListView(); // setChoiceMode方法: // 表名有选项,如果不设置,缺省为none,即点击后仍无反应 listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { // TODO Auto-generated method stub super.onListItemClick(l, v, position, id); Toast.makeText(getApplicationContext(), DATA[position], Toast.LENGTH_SHORT).show(); } }
备注:
该示例中使用了Android系统提供的ListActivity创建ListView,与普通的Activity的不同在于 ListActivity中自带一个ListView的控件,在ListActivity中可以通过getListView()方法得到 ListActivity中的ListView,并可以通过setListAdapter()方法为ListView设置Adapter。
ArrayAdapter的构造函数的第一个参数为Context,在这里设置为this就好了。第二个参数决定了ListView的不同风 格,android.R.layout.simple_list_item_multiple_choice为多选的风格。最后一个参数决定了 ArrayAdapter使用的String数组,DATA数组。
其中,第二个参数还可以是:
android.R.layout.simple_list_item_1
android.R.layout.simple_list_item_2
android.R.layout.simple_list_item_single_choice
android.R.layout.simple_list_item_checked
通过字面意思便可以理解,读者可以自己测试一下。
另外,需要注意的是,仅仅在ArrayAdapter中设置为多选风格是不行的,运行工程会发现点击不同的选项,多选框没有反应。需要通过ListView的setChoiceMode(ListView()方法才可以实现多选的效果。