2011-01-14 15 views
7

¿Cómo implemento un onMenuItemClickListener?Cómo implementar un onMenuItemClickListener en android

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    super.onCreateOptionsMenu(menu); 

    getMenuInflater().inflate(R.menu.gameoptions, menu); 
    menu.findItem(R.id.menu_item).setIntent(new Intent(this, QMenuActivity.class)); 
    menu.findItem(R.id.back_item).setOnMenuItemClickListener; 
    return true; 
} 

Quiero que back_item haga clic una vez para llamar a una función dentro de la página, ¿cómo lo hago?

+0

Vuelva a formatear su pregunta, no hay forma de que compile su fuente actual. – fiction

Respuesta

9

Supongo que desea acceder a una función no estática en su actividad. Sin demasiada información de usted, intentar algo así como lo que está abajo:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuItem item = menu.findItem(R.id.back_item); 
    item.setOnMenuItemClickListener(new OnMenuItemClickListener() { 

     @Override 
     public boolean onMenuItemClick(MenuItem item) { 
      YourActivity.this.someFunctionInYourActivity(); 
      return true; 
     } 
    }); 
    return true; 
} 
+0

Justo lo que necesitaba gracias – Beginner

4

Aquí es la forma en que lo hago si voy a inflar un menú xml.

primera vez que inflar el menú cuando se le llama:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.test, menu); 
    return true; 
} 

luego esperar a que una prensa y comprobar qué ID se presionó:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    switch (item.getItemId()) { 
     case R.id.item1: 
      ... code ... 
      return true; 
     case R.id.item2: 
      ... code ... 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

Espero que esto ayude!

1
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() 

cambie el código para incluir MenuItem después de nuevo.

Cuestiones relacionadas