【发布时间】:2010-11-09 05:48:18
【问题描述】:
我似乎遇到了 Android ListView 的问题。我正在尝试从 ListView 中删除所选项目。删除方法正在工作,并且允许我根据需要从列表中删除尽可能多的项目,但是每当我滚动到列表底部时(在删除至少 1 个项目之后),我都会收到一个关闭应用程序的错误。
这是我的代码:
public class MainActivity extends Activity {
private String[] mRoute;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mRoute = getResources().getStringArray(R.array.countries);
ListView list = (ListView)findViewById(R.id.list);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.listitem, mRoute);
list.setAdapter(adapter);
registerForContextMenu(list);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
int menuItemIndex = item.getItemId();
String[] menuItems = getResources().getStringArray(R.array.menu);
String menuItemName = menuItems[menuItemIndex];
String listItemName = mRoute[info.position];
// Remove String From List
List<String> routeArrayString = new ArrayList<String>(Arrays.asList(mRoute));
routeArrayString.remove(listItemName);
mRoute = routeArrayString.toArray(mRoute);
//Generate new ListView
ListView list = (ListView)findViewById(R.id.list);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.listitem, mRoute);
list.setAdapter(adapter);
registerForContextMenu(list);
return true;
}
有什么想法吗?提前致谢。
【问题讨论】:
-
使用 logcat 向我们展示错误消息的完整堆栈跟踪。