gpt4 book ai didi

java - 如果删除 ListView 中的最后一项,则显示不同的布局

转载 作者:行者123 更新时间:2023-12-01 14:15:32 26 4
gpt4 key购买 nike

我的 fragment 中有以下代码,用于在 ListView 中显示文件夹中的所有文件。我还添加了从 ListView 中删除文件的功能。删除最后一个文件后,我想显示一个不同的 xml 布局,如果选项卡更改,则该布局成功工作,但如果删除 ListView 中的最后一项,则该布局不是实时的。

mFrame3 =  (RelativeLayout) inflater.inflate( R.layout.ptrip, container, false ); //display if file exist
noFilesDisplayed = (RelativeLayout) inflater.inflate(R.layout.nofile, container, false); //display if file doesn't exist
if (FilesInFolder != null) {
mFrame3.setVisibility(View.VISIBLE); //display the listview
noFilesDisplayed.setVisibility(View.GONE); //hide it
}
else {
mFrame3.setVisibility(View.GONE); //hide it
noFilesDisplayed.setVisibility(View.VISIBLE); //display if no file exist in the folder
}

@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
int menuItemIndex = item.getItemId();
String[] menuItems = getResources().getStringArray(R.array.menuSelect);
String menuItemName = menuItems[menuItemIndex];
String txt = ((TextView) info.targetView.findViewById(R.id.txtTitle)).getText().toString();

if (menuItemIndex == 0) {
if (folder.exists()) {
//File flEachFile = new File(folder.toString() + "/" + currentFileName + ".tp");
flEachFile = new File(folder.toString() + "/" + txt + ".tp");
flEachFile2 = new File(folder.toString() + "/." + txt + ".tp");
if (flEachFile.exists()) {
flEachFile.delete();
}
if (flEachFile2.exists()) {
flEachFile2.delete();
}
adapter.remove(adapter.getItem(info.position));
adapter.notifyDataSetChanged();
dataList.setEmptyView(noFilesDisplayed);
//getActivity().getActionBar().setSelectedNavigationItem(1);
}
}
return true;
}

不会发生的是,一旦从 ListView 中删除最后一个项目,以下命令不会更改 View :dataList.setEmptyView (noFilesDisplayed);显示最后一个文件后如何实现 View 更改?也许刷新选项卡 View 本身?

最佳答案

实际上,setEmptyView() 只在创建 ListView 时调用一次。

noFilesDisplayed 可见性设置为 GONE 并且不要手动修改它,ListView 会为您完成此操作。也许这就能解决问题。

此外,someone says here手动将膨胀 View 添加到 ListView 的父级(而不是在调用 inflate() 时提供父级)解决了类似的问题。

关于java - 如果删除 ListView 中的最后一项,则显示不同的布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18139591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com