Android列表视图刷新

viv*_*oid 16 android dom xml-parsing android-listview

我有一个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;
  }
Run Code Online (Sandbox Code Playgroud)

bli*_*uff 40

您必须通知ListView适配器数据已更改.

listViewAdapater.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因这不起作用并且有一些似乎没有通知的奇怪情况,您可以通过构造函数重新分配适配器和更新的数组.

  • 尝试重新初始化适配器,就像创建它时一样. (4认同)
  • 嗨兄弟!我知道上帝solutin应该是notifyDataSetChaned(),但我没有为我工作.我为每个元素制作了一个带有向上和向下箭头的列表.如果用户按下按钮,则两个项目应相互交换.所以你建议的方法对我不起作用,我不得不重置适配器:lw.setAdapter(mAdapter).Thx:来自匈牙利的Karoly (3认同)