我有一个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();

如果由于某种原因该方法不起作用,并且在某些情况下似乎没有发出通知,则可以通过构造函数使用更新后的数组重新分配适配器。

09-30 14:32