Ich habe ein Menü, das von main_menu.xml aufgeblasen wird:OnMenuItemSelected wird nicht aufgerufen, wenn das Layout für Menüpunkt gesetzt
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/act_sync"
android:showAsAction="always"
android:actionLayout="@layout/sync_action"
android:icon="@android:drawable/ic_popup_sync" />
</menu>
und hier ist der Code in der Aktivität:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
MyMessageHandler.debug("menu item selected");
switch(item.getItemId()){
case R.id.act_sync:
sync();
return true;
}
return super.onOptionsItemSelected(item);
}
Aber onOptionsItemSelected wird nicht aufgerufen, wenn ich den Menüeintrag berühre. Wenn ich das actionLayout-Attribut des Menüelements lösche, funktioniert es einwandfrei. Wie kann ich das beheben?
Danke.
Danke. Ich hatte bereits den 'item.setOnMenuItemClickListener' getestet, aber es hat nicht funktioniert. Der Punkt war, meine benutzerdefinierte Ansicht zu erhalten und clickListener darauf zu setzen. Danke für Ihre Hilfe :) obwohl das onClick() nicht von @Override kommentiert werden sollte. Ich bearbeite deine Antwort auf die Version, die funktioniert, und auch ein bisschen mehr Digest;) –
danke Vipul :) – Ranjit
Dies ist die einzige Lösung, die für mich arbeitete. Ich habe versucht SetOnMenuItemClickListener, OnMenuItemSelected, usw. – crubio