Android, perché quando utilizzo OnOptionsItemSelected (), il menu delle opzioni non funziona?

StackOverflow https://stackoverflow.com/questions/9409381

  •  29-10-2019
  •  | 
  •  

Domanda

Oggi mi sono sorpreso che il motivo per cui il mio menu non viene visualizzato quando ho messo onkeydown () Nel mio codice !!!

Nel mio progetto ho un menu e l'ho progettato con onCreateOptionsMenu() e onOptionsItemSelected() in modo regolare. Il progetto non ha problemi e funziona bene.

Il problema sta usando onKeyDown(). Quando lo inserisco nella mia attività ed eseguo il progetto, quando faccio clic sul pulsante del menu, non mostra nulla. mentre quando commento onKeyDown() L'app funziona bene.

Qual è il motivo? Grazie

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);

    return (super.onCreateOptionsMenu(menu));
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
        case R.id.home:
            Log.i("Menu", "Home clicked.");
            return true;
        case R.id.social:
            Log.i("Menu", "Social Networks clicked.");
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    super.onKeyDown(keyCode, event);

    if(keyCode == KeyEvent.KEYCODE_HOME){
        Log.i("onKeyDown", "Home presed");
        int pid = android.os.Process.myPid(); 
        android.os.Process.killProcess(pid); 
    }

    if(keyCode == KeyEvent.KEYCODE_BACK){
        Log.i("onKeyDown", "back presed");
        int pid = android.os.Process.myPid(); 
        android.os.Process.killProcess(pid);
    }
    return true;
}

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top