尝试更改下一个活动的图标(setIcon)时,应用程序崩溃

时间:2014-08-07 00:00:44

标签: java android

这是我的代码中的内容:

@Override
public boolean onCreateOptionsMenu(Menu menu){
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    if (MainActivity.fifty){
        menu.findItem(R.drawable.fifty).setIcon(R.drawable.fiftyf);
    }
    return super.onCreateOptionsMenu(menu);
}

现在问题是,当我删除if语句时,它工作正常,但下一个活动的图标没有改变。

这是我的菜单的xml文件:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
    android:id="@+id/aud"
    android:icon="@drawable/aud"
    android:orderInCategory="1"
    android:showAsAction="always"
    android:title="Audience&apos;s Help"/>
<item
    android:id="@+id/fifty"
    android:icon="@drawable/fifty"
    android:orderInCategory="2"
    android:showAsAction="always"
    android:title="50:50"/>
<item
    android:id="@+id/friend"
    android:icon="@drawable/friendhelp"
    android:orderInCategory="2"
    android:showAsAction="always"
    android:title="Friend&apos;s Help"/>

如您所见,我刚刚开始创建图标更改。这个想法是按下50:50的游戏名为&#34;谁想成为百万富翁&#34;。现在在下一个活动中,我试图设置R.drawable.fiftyf,这是一个禁用的50:50图标,因为当用户使用它时,它应该不再可用。 当我尝试在menu.xml中添加它时,刚刚添加了新图标,这是我不需要的。另请注意,该图标会根据我的方法进行更改,但应用程序会在进入下一个活动时崩溃。

谢谢大家。 如果需要其他信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

这是错误的:

menu.findItem(R.drawable.fifty).setIcon(R.drawable.fiftyf);

应该是这样的:

menu.findItem(R.id.fifty).setIcon(R.drawable.fiftyf);