【发布时间】:2016-02-21 04:32:24
【问题描述】:
我的活动中有一个 ListView。我也有一个菜单,还有一个用于保存列表的菜单项。我想让它的行为类似于下面的伪代码:
if (myList.size() > 0) {
menuitem.setVisible(true);
} else {
menuitem.setVisible(false);
}
我希望“保存”菜单项仅在列表视图中至少有一项时显示。我也有一个自定义的 ArrayAdapter 实现,可以从那里进行此操作吗?或者有什么我可以使用的监听器?
感谢任何帮助!
编辑:
JDev 的答案就是解决方案。 我只更改了一件事:我将列表大小检查移至自定义 ArrayAdapter 中的 notifyDataSetChanged() 方法,现在它可以工作了!
/**
* {@inheritDoc}
*/
@Override
public void notifyDataSetChanged() {
// Hide/show 'save' menuitem
if (mListItems.size() > 0) {
mListener.setMenuItemVisible(true);
} else {
mListener.setMenuItemVisible(false);
}
super.notifyDataSetChanged();
}
【问题讨论】:
-
@AsfK 不是。我知道如何隐藏菜单项,但我不知道如何在我的 ListView 中没有项目时隐藏它,以及在至少一个项目已放入 ListView 时如何显示它。
-
如果您使用自定义列表视图,您应该找到
getCount()方法,否则您可以知道您的列表\数组长度(\大小)。当您从列表视图中添加\删除项目时,只需使用您的代码。显示一些代码,在其中添加\删除项目... -
@lkallas 你的问题解决了吗?
-
@JDev 是的,它工作得很好!我编辑了我的问题。你能告诉我是否 super.notifyDataSetChanged(); notifyDataSetChanged() 是否需要?无论如何都赞成并标记为答案。非常感谢!
标签: java android android-listview android-menu