我有一个 ListView,它通过一个数组向我显示一些数据(它在另一个类中,我通过它的对象访问它)。
每当我通过上下文菜单从 ListView 中删除一个元素时,列表不会刷新,但该元素会从数组中删除。如何刷新列表以显示此内容?
代码:
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
if (v.getId()==R.id.mainListView) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
post=info.position;
menu.setHeaderTitle(stocks[info.position]);
String[] menuItems = stt;
for (int i = 0; i<menuItems.length; i++) {
menu.add(Menu.NONE, i, i, menuItems[i]);
}
}
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
int menuItemIndex = item.getItemId();
String[] menuItems = stt;
String menuItemName = menuItems[menuItemIndex];
listItemName = stocks[info.position];
stockname.remove(post-1);
return true;
}
最佳答案
您必须通知您的 ListView 适配器数据已更改。
listViewAdapater.notifyDataSetChanged();
如果由于某种原因这不起作用并且在某些奇怪的情况下它似乎没有通知,您可以通过构造函数使用更新后的数组重新分配您的适配器。
关于Android ListView 刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4088862/