在Android中使用多个选择ListView实现全选

时间:2010-11-02 17:08:14

标签: android listview

我正在尝试在ListViewActivity中为ListView实现Select All菜单项。我的ListViewActivity的相关部分:

public class MyListViewActivity extends ListActivity
{


   @Override
   protected void onCreate(Bundle savedInstanceState)
   {
      super.onCreate(savedInstanceState);

      ArrayList<String> data = createDataList();      
      setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_multiple_choice, data));
      getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
      getListView().setItemsCanFocus(false);
   }


   @Override
   public boolean onMenuItemSelected(int featureId, MenuItem item)
   {
      if (item.getItemId() == R.id.delete)
      {
         //TODO: delete the checked items
         return true;
      }
      if (item.getItemId() == R.id.select_all)
      {
         for (int i = 0; i < getListView().getCount(); i++)
            getListView().setSelection(i);
         return true;
      }
      return super.onMenuItemSelected(featureId, item);
   }

我浏览了stackoverflow.com和google;以上是应该工作的东西。但事实并非如此。 setSelection(i)似乎是我想在ListView上调用的方法,但它不像宣传的那样工作。

我做错了什么?这在代码中是否可以在Android上使用?

2 个答案:

答案 0 :(得分:4)

尝试这个。

ListView listview = getListView();
if (item.getItemId() == R.id.select_all)
      {
         for (int i = 0; i < listview.getCount(); i++)
            listview.setItemChecked(i, true);
      }

答案 1 :(得分:3)

我认为您正在寻找的功能是setItemChecked