2017-06-27 95 views
2

我目前在我的菜單中有一項是豬的圖標。我想要發生的是,當我點擊豬時,圖標會變成像雞一樣的另一個圖像。我已經閱讀了StackOverFlow上的其他論壇,但仍然沒有運氣。Android - 如何更改點擊時的菜單項圖標

我知道你不能使用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; 
} 

回答

1

onOptionsItemSelected只要選擇了在選項菜單中的項目被調用。 item參數包含所選的菜單項。

所以,你可以這樣做:

item.setIcon(R.drawable.chicken); 
+0

宕,我覺得幾乎愚蠢現在哈哈 – ojboba

+1

@ojboba我們都在那裏 – Akis

相關問題