2016-02-13 1 views
-1

Я использую onCreateOptionsItem, как показано ниже в коде, но когда я переопределяю onMenuItemSelected, он отмечен красным. ? Есть ли альтернатива ему, как я могу это исправить ошибкиКак использовать onMenuItemSelected

код:

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    MenuItem miRefrsh = menu.add(0, 1, 0,"refresh"); 
    miRefrsh.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); 
    //进入关于页面 
    MenuItem miScan = menu.add(0, 2, 1, "scan"); 
    miScan.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); 
    //退出系统 
    MenuItem miCancel = menu.add(0, 3, 2, "cancel"); 
    miCancel.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); 

    MenuItem miExit = menu.add(0, 4, 2, "exit"); 
    miExit.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); 

    return super.onCreateOptionsMenu(menu); 

} 

public boolean onMenuItemSelected(int featureId, MenuItem item) { 
    switch(item.getItemId()) { 
     case MEMU_RESCAN: 
      this.mGP.closeConn(); 
      this.initActivityView(); 
      this.openDiscovery(); 
      return true; 
     case MEMU_EXIT: 
      this.finish(); 
      return true; 
     case MEMU_ABOUT: 
      this.openAbout(); 
      return true; 
     default: 
      return super.onMenuItemSelected(featureId, item); 
    } 
+0

, какая линия она показывает красный цвет? –

+0

где ошибка? показать журнал ошибок. –

ответ

0

В вашем случае следует использовать menuItem.getTitle() и сравнить с названиями программно добавленных ранее. Используйте menuItem.getId онлайн, когда вы раздуваете файл меню XML. Надеюсь, это поможет

4
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    // do Your Work Here 
    return super.onOptionsItemSelected(item); 
} 

Android знает о нескольких типах меню (например, меню опций и контекстное меню). «onMenuItemSelected» - это общий обратный вызов. Вам не нужно использовать это обычно. 'onOptionsItemSelected' '- это обратный вызов меню опций, а onContextItemSelected - обратный вызов контекстного меню.

+0

, пожалуйста, уточните это. –

1
@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     int id = item.getItemId(); 
     if (id == android.R.id.home) { //or switch-case 
      finish(); 
     } 

     if (id == R.id.your_item1) { 

     } 

     if (id == R.id.your_item2) { 

     } 
     return super.onOptionsItemSelected(item); 
    } 

SUDARSHAN является правильным. вы можете использовать onOptionsItemSelected.

1

использование onOptionsItemSelected(MenuItem item) способ и расширить AppCompatActivity