在CommonsWare的繁忙的Android开发代码指南一书中,有一章解释了如何使用上下文菜单。
在该章的一个示例中,上下文菜单提供了从列表视图中删除项目的选项,该列表视图是从名为ArrayList<String>
的{{1}}对象生成的。
在示例中,words
方法实现如下:
onContextItemSelected
由于以下事实,public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
ArrayAdapter<String> adapter=(ArrayAdapter<String>)getListAdapter();
switch (item.getItemId()) {
case R.id.remove:
adapter.remove(words.get(info.position));
return true;
default:
...
}
被调用的行似乎很奇怪:
假设adapter.remove(...)
对象包含以下项目(按此顺序)
现在,当用户在 2nd alfa上加载上下文菜单并选择删除它的选项时,提到的行实际上会删除 1st alfa。这对我来说似乎不对。
相反,我会做这样的事情:
words
我在Java和Android编程方面不是很好,所以我想听听你的意见,因为我想确定我很清楚应该如何使用适配器。
答案 0 :(得分:0)
你的想法听起来不错。
如果它的行为与你所描述的一样,那么这个例子已经不存在了,你应该告诉Mark这样他也可以检查一下(无论如何他都可以这样做,因为他在这个网站上非常活跃)。