【问题标题】:ListView not refreshed after item get deleted删除项目后 ListView 未刷新
【发布时间】:2016-01-12 18:13:37
【问题描述】:
  ListView listViewUpdate;
  ListAdapter adapter;

  listViewUpdate.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            public boolean onItemLongClick(final AdapterView<?> p, View v, final int po, long id) {

                HashMap<String, String> clickedItem = EditDetails.get(po);
                iD=clickedItem.get(Configs.TAG_ID);
                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                builder.setTitle("Delete");
                builder.setMessage("Are you sure you want to delete?");
                builder.setIcon(android.R.drawable.ic_dialog_alert);
                builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int ii) {
                        delete(iD);
                        listViewUpdate.setAdapter(adapter);
                        ((BaseAdapter) adapter).notifyDataSetChanged();

                    }
                });

                builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
                        {
                            public void onClick(DialogInterface dialog, int ii) {
                                dialog.dismiss();
                            }
                        }

                );
                builder.show();
                return true;
            }
        });

        return edit_details;
    }

项目被删除但 listView 不刷新。是否必须拥有 customBaseAdapter?数据是从 MySQL 检索的,我从 here 获得教程,因为他只使用 List 适配器。谢谢

【问题讨论】:

  • ListAdapter 适配器;它是否在您的活动的 onCreate 之外

标签: android listview android-listview


【解决方案1】:

在从数组中删除当前位置后,您可能需要这样做来刷新列表视图

listDO.clear();  
    listDO.addAll(getyourList()); 

     if (rowAdapter == null) {   
         rowAdapter = new RowAdapter(listDO);   
         listView.setAdapter(rowAdapter);   
        } else {   
         rowAdapter.notifyDataSetChanged();   
        }   

【讨论】:

  • 你能解释更多吗?
  • @JohnJoe:您需要删除列表视图中的所有视图并初始化一个新适配器并将新适配器设置为列表视图
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
  • 1970-01-01
相关资源
最近更新 更多