Java 在项目删除或重命名时更新ListView
我在选项卡式的Java 在项目删除或重命名时更新ListView,java,android,listview,Java,Android,Listview,我在选项卡式的片段中有以下代码: private SetRowsCustomAdapter adapter; private ArrayList<SetRows> rowsArray = new ArrayList<SetRows>(); for (Map.Entry<String, String> current_file:filesInFolder.entrySet()) { rowsArray.add(new SetRows(
片段中有以下代码:
private SetRowsCustomAdapter adapter;
private ArrayList<SetRows> rowsArray = new ArrayList<SetRows>();
for (Map.Entry<String, String> current_file:filesInFolder.entrySet()) {
rowsArray.add(new SetRows(R.drawable.ic_launcher, current_file.getKey().toString(), current_file.getValue().toString()));
}
adapter = new SetRowsCustomAdapter(getActivity(), R.layout.customlist, rowsArray);
dataList = (ListView) mFrame3.findViewById(R.id.lvFiles);
dataList.setAdapter(adapter);
}
getActivity().deleteFile(txt + ".trp");
adapter.remove(adapter.getItem(info.position));
adapter.notifyDataSetChanged();
startActivity(new Intent(getActivity(), MainActivity.class).putExtra("tab", 2));
private-SetRowsCustomAdapter适配器;
private ArrayList rowsArray=new ArrayList();
对于(Map.Entry当前文件:fileinfolder.entrySet()){
添加(新的SetRows(R.drawable.ic_启动器,当前_文件.getKey().toString(),当前_文件.getValue().toString());
}
adapter=new SetRowsCustomAdapter(getActivity(),R.layout.customlist,rowsArray);
dataList=(ListView)mFrame3.findViewById(R.id.lvFiles);
dataList.setAdapter(适配器);
}
getActivity().deleteFile(txt+“.trp”);
移除(adapter.getItem(info.position));
adapter.notifyDataSetChanged();
startActivity(新的意图(getActivity(),MainActivity.class).putExtra(“tab”,2));
它删除myListView
中的一行,并启动一个新活动以显示更改。尽管我有适配器.notifyDataSetChanged()
,但删除一行时,如果没有上面代码的最后一行,它不会显示更改
有人能帮我解决这个问题吗?这样它就可以在不启动新活动的情况下显示所做的更改。使用自定义适配器更好,这些链接将对您有所帮助
我认为您需要从arraylist中删除,然后调用适配器setNotifyDataChange(),因为当您调用此函数时,它会从arraylist中重新加载适配器 您不需要NOTIFYDATASETCHANGE。我删除了最后两行,但我的ListView不会更新,除非我离开选项卡并再次返回。您确定此适配器是正在查看的列表的适配器吗?我用更多信息更新了上述代码。我很确定。有趣的是,当你重新加载页面时,它会更新。这意味着fileinfolder映射也会更新。