【问题标题】:Make an ActionBar Button appear from press of ListView's onItemClick按下 ListView 的 onItemClick 使 ActionBar Button 出现
【发布时间】:2014-11-17 17:56:47
【问题描述】:

我目前有一个包含 listView 的片段,并且我希望当用户从 listView 中选择一个项目时按钮变得可见。我试过以下代码:

MenuItem infoButton = menu.findItem(R.id.moreInfoButton);
infoButton.setVisible(true);

我在单击列表项时得到的只是一些其他基本功能,我必须显示有关所选项目的更多信息,但只有这个功能不起作用。当我在 try-catch 块中按下带有上述代码的列表项时,日志会显示这一点:

11-17 12:50:39.211  14126-14126/myPackage W/System.err﹕ java.lang.NullPointerException
11-17 12:50:39.216  14126-14126/myPackage W/System.err﹕ at myPackage.fragmentName$3.onItemClick(fragmentName.java:417)

任何想法我可以做什么?也许向菜单布局文件声明一个菜单项和 findViewByID?或者这是不正确的做法?

谢谢!

【问题讨论】:

    标签: android listview android-fragments android-listview android-actionbar


    【解决方案1】:

    在您的片段/活动上创建一个布尔字段,指示您是否正在显示按钮。在您的onItemClick 上更改它的值,并在更改后调用Activity.invalidateOptionsMenu。这将调用onPrepareOptionsMenu。在该方法中检查您的字段并在操作栏上显示/隐藏您想要的按钮。

    【讨论】:

    • 只是为了澄清您的回复,我应该在哪里声明操作栏中的按钮?然后我会通过以下方式更改其可见性:buttonName.setVisible(booleanValue)?我问是因为我在 onCreateView 中将可见性设置为 false(这会导致崩溃),然后尝试在 onClick 中将其设置为 true。
    • 您在菜单 xml 上声明按钮。首先将其设置为不可见。并在 onPreparateOptionsMenu 上更改其可见性
    • 好的,我声明了按钮并将可见性设置为 false。然后在Java中我声明“private MenuItem myButton;”和“myButton=menu.findItem(R.id.actionBarButton);”在 onCreateView 中。然后我有“myButton.setVisible(true);”在 onPrepareOptionsMenu - 还是应该在 onClick 中?当我尝试放入 Activity.invalidateOptionsMenu 时,第二部分说它无法解析符号。
    • 请再次阅读我的回答。你似乎不明白什么是标志。
    猜你喜欢
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    相关资源
    最近更新 更多