2016-02-13 52 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(),並比較你編程之前添加的標題。當你膨脹XML菜單文件時,使用menuItem.getId在線。希望這有幫助

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); 
    } 

蘇達山是對的。你可以使用onOptionsItemSelected。

1

使用onOptionsItemSelected(MenuItem item)方法和擴展AppCompatActivity