我在尝试通过长按从 ListView 中删除项目时遇到了一些麻烦。下面是代码:
public class MListViewActivity extends ListActivity {
private ListView lv;
private String[] some_data = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
some_data = getResources().getStringArray(R.array.mdata);
// Bind resources Array to ListAdapter
ArrayAdapter<String> myAdapter = new ArrayAdapter<String>(this,
R.layout.list_item, R.id.label, some_data);
this.setListAdapter(myAdapter);
lv = getListView();
lv.setDividerHeight(3);
lv.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int arg2, long arg3) {
// Can't manage to remove an item here
return false;
}
});
}
感谢任何帮助
最佳答案
你不应该使用 Arrays
,你应该使用 ArrayList
来移除和添加项目到 Listview
。
一旦声明了数组大小,您就可以修改特定索引中的数据,但不能删除项目或添加项目。
所以拿一个ArrayList,当你长按ListView Item时,只需要调用Arraylist的remove方法并通知数据集改变。
例子:
ArrayList<String> al = new ArrayList<String>();
在您的长按中写入以下代码以删除项目。
al.remove(arg2);//where arg2 is position of item you click
myAdapter.notifyDataSetChanged();
关于android - 长按从ListView中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14340579/