【发布时间】:2014-06-18 05:59:48
【问题描述】:
我在Fragment 中使用了一个数组字符串,我在列表中显示了带有setListAdapter 的数组字符串项:
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
String[] array = getResources().getStringArray(R.array.examlearray);
final ArrayList<String> str = new ArrayList<String>(Arrays.asList(array));
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1, str );
setListAdapter(arrayAdapter);
final ListView listView = getListView();
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
listView.setMultiChoiceModeListener(new MultiChoiceModeListener() {...
在我的onActionItemClicked 下,我想实现我的 deleteSelectedItem() 方法,删除选定的列表项,这是我的代码,但它没有删除选定的项目,它只是删除从列表的第一个开始,当我选择所有项目并按删除时,应用程序崩溃!应该怎么办?,任何帮助将不胜感激!谢谢!
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
// Respond to clicks on the actions in the CAB
switch (item.getItemId()) {
case R.id.delete:
// deleteSelectedItems();
Log.i(TAG, "deleteSelectedEntries");
SparseBooleanArray checkedItems = listView.getCheckedItemPositions();
for(int i=0;i<checkedItems.size();++i)
{ if(checkedItems.valueAt(i))
str.remove(i);
}
arrayAdapter.notifyDataSetChanged();
【问题讨论】:
-
访问该答案并制作自定义列表视图stackoverflow.com/questions/23485986/…