Ho un menù che viene gonfiato da main_menu.xml:OnMenuItemSelected non viene chiamato quando il layout è impostato per la voce di menu
<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>
ed ecco il codice nell'attività:
@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);
}
Ma onOptionsItemSelected non viene chiamato quando tocco la voce di menu. Quando rimuovo l'attributo actionLayout della voce di menu, funziona correttamente. Come posso risolvere questo?
Grazie.
Grazie. Ho già testato 'item.setOnMenuItemClickListener' ma non ha funzionato. Il punto era quello di ottenere la mia vista personalizzata e impostare clickListener su di esso. Grazie per il tuo aiuto :) anche se onClick() non dovrebbe essere annotato da @Override. Modifico la tua risposta alla versione che funziona, ed è anche un po 'più digerente;) –
grazie Vipul :) – Ranjit
Questa è l'unica soluzione che ha funzionato per me. Ho provato setOnMenuItemClickListener, onMenuItemSelected, ecc. – crubio