Android-如何在单击时更改菜单项图标

Android-如何在单击时更改菜单项图标,android,Android,目前我的菜单中有一项是猪的图标。我希望当我点击猪时,图标会变成另一个像鸡一样的图像。我读过其他关于StackOverFlow的论坛,但还是没有运气 我知道不能使用findViewbyId引用菜单项,但findItem方法对我不起作用,或者至少它表示无效。请告知 这是我目前的代码: <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android

目前我的菜单中有一项是猪的图标。我希望当我点击猪时,图标会变成另一个像鸡一样的图像。我读过其他关于StackOverFlow的论坛,但还是没有运气

我知道不能使用findViewbyId引用菜单项,但findItem方法对我不起作用,或者至少它表示无效。请告知

这是我目前的代码:

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <item android:id="@+id/menuImage"
        android:title=""
        android:icon="@drawable/pig"
        android:orderInCategory="1"
        app:showAsAction="always|withText"/>
    </menu>


    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu, menu);
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()){
        case R.id.menuImage:
            Toast.makeText(this, "YOU THINK YOU GOT THIS?", Toast.LENGTH_SHORT).show();
            MenuItem changeImage = (MenuItem) findViewById(R.id.menuImage);
            changeImage.setIcon(R.drawable.chicken);
            return true;
    }
    return true;
}

@凌驾
公共布尔onCreateOptions菜单(菜单){
getMenuInflater().充气(R.menu.menu,menu);
返回super.onCreateOptions菜单(菜单);
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
案例R.id.menuImage:
Toast.makeText(这个“你认为你得到了这个吗?”,Toast.LENGTH_SHORT.show();
MenuItem changeImage=(MenuItem)findViewById(R.id.menuImage);
changeImage.setIcon(R.drawable.chicken);
返回true;
}
返回true;
}

onOptions ItemSelected
在选择选项菜单中的项目时被调用。
参数包含所选的菜单项

所以你可以这样做:

item.setIcon(R.drawable.chicken);

@我们都去过那里