gpt4 book ai didi

java - Android:根据 ListView 中的项目数显示/隐藏菜单项

转载 作者:行者123 更新时间:2023-11-29 07:37:36 25 4
gpt4 key购买 nike

我的 Activity 中有一个 ListView。我还有一个菜单,还有一个用于保存列表的菜单项。我想让它的行为类似于下面的伪代码:

if (myList.size() > 0) {
menuitem.setVisible(true);
} else {
menuitem.setVisible(false);
}

我希望“保存”菜单项仅在 ListView 中至少有一项时显示。我也有一个自定义的 ArrayAdapter 实现,可以从那里执行此操作吗?或者有什么我可以使用的监听器吗?

感谢任何帮助!

编辑:

JDev answer 就是解决方案。我只改变了一件事:我将列表大小检查移动到自定义 ArrayAdapter 中的 notifyDataSetChanged() 方法,现在它可以工作了!

     /**
* {@inheritDoc}
*/
@Override
public void notifyDataSetChanged() {

// Hide/show 'save' menuitem
if (mListItems.size() > 0) {
mListener.setMenuItemVisible(true);
} else {
mListener.setMenuItemVisible(false);
}

super.notifyDataSetChanged();
}

最佳答案

获取ListView长度后。添加 invalidateOptionsMenu(); 以调用 onCreateOptionsMenu()

检查 ListView 是否为空,

@Override 
public boolean onCreateOptionsMenu(Menu menu)
{
...
MenuItem menuitem = menu.findItem(R.id.addAction);
if (myList.size() > 0) {
menuitem.setVisible(true);
} else {
menuitem.setVisible(false);
}
}

如果您有任何疑问,请在下方评论。

关于java - Android:根据 ListView 中的项目数显示/隐藏菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33797007/

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