2017-06-27 3 views
2

Ich habe derzeit ein Element in meinem Menü, das ein Symbol eines Schweins ist. Was ich gerne machen würde, wenn ich auf das Schwein klicke, ändert sich das Symbol zu einem anderen Bild wie ein Huhn. Ich habe andere Foren auf StackOverFlow gelesen, aber immer noch kein Glück.Android - Wie Menü-Symbol ändern, wenn geklickt

Ich weiß, dass Sie findViewbyId nicht verwenden können, um einen Menüeintrag zu referenzieren, aber die Methode findItem funktioniert nicht für mich oder zumindest sagt es ungültig. Bitte beraten.

Hier ist mein aktueller Code:

<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; 
} 

Antwort

1

onOptionsItemSelected werden aufgerufen, wenn ein Element in dem Optionsmenü ausgewählt wird. Der Parameter item enthält den ausgewählten Menüeintrag.

So können Sie dies tun:

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

dang, ich fühle mich jetzt fast dumm haha ​​ – ojboba

+1

@ojboba wir alle da – Akis

Verwandte Themen