estoy desarrollando para android 3+barra de acción androide onNavigationItemSelected
En mi barra de acción tengo una lista desplegable (ver how to hide/unhide the actionbar list on android 3? para el desplegable tengo la intención). El problema es que necesito hacer una determinada acción cuando el usuario selecciona algo, pero Android llama aNavigationItemSelected() como soons, ya que dibuja la vista, por lo que no se realizó ninguna selección.
¿Cómo puedo detectar si el usuario realmente presionó algo y no es una llamada falsa de Android?
public class ListDittaListener implements OnNavigationListener{
private BaseActivity activity;
private ListDittaListener()
{
}
public ListDittaListener(BaseActivity activity)
{
this.activity = activity;
}
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId)
{
MyApp appState = ((MyApp)this.activity.getApplicationContext());
appState.setDittaSelezionata((int) itemId);
SharedPreferences settings = this.activity.getSharedPreferences(MyApp.PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("ditta_id_selezionata", (int) itemId);
////////restart activity this.activity.recreate();
return false;
}
}
gracias pero como escribí en la descripción de la abundancia, "me gustaría evitar usar un contador e ignorar la primera llamada ", esto parece más como un truco, me gustaría entender por qué ocurre esto en primer lugar – max4ever
Tengo el mismo problema y es terriblemente molesto hackearlo de esta manera. ¿Hay un propósito para tal comportamiento? –
Utilicé esta solución para evitar que los Fragmentos se reprodujeran innecesariamente dos veces cuando la orientación de la pantalla cambia y pierde su estado. Ver [aquí] (http://stackoverflow.com/a/14295474/963396). –