我正在尝试在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上使用?
答案 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
。