2017-06-04 71 views
0

我使用的是菜單的動作條,這裏是在菜單下我的XML mainactivity.xml:動作條菜單按鈕無法瀏覽其他活動(安卓)

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <item 
     android:id = "@+id/Viewmain" 
     android:orderInCategory="200" 
     app:showAsAction="always" 
     android:title="VIEW"/> 

    <item 
     android:id = "@+id/Addmain" 
     android:orderInCategory="205" 
     app:showAsAction="always" 
     android:title="ADD"/> 


</menu> 

下面是我使用的代碼導航在動作條的按鈕等活動mainactivity.java:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 




    } 


    public boolean onContextItemSelected (MenuItem item) 
    { 

     if (item.getItemId()==200) 
     { 
      Intent myintent = new Intent(this, ViewStats.class); 
      startActivity(myintent); 
      return true; 
     } 
     else if (item.getItemId()==205) 
     { 
      Intent myaddintent = new Intent(this,Sales.class); 
      startActivity(myaddintent); 

     } 

     return super.onOptionsItemSelected(item); 
    } 


    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     super.onCreateOptionsMenu(menu); 
     this.myMenu = menu; 


     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 



    } 

然而,當我點擊動作條按鈕「VIEW」 &「ADD」,沒有發生變化。我的代碼有什麼問題?請幫忙。 (注:沒有錯誤被顯示在堆棧跟蹤)

+0

'onContextItemSelected'或它應該是'onOptionsItemSelected'。同時刪除'else'語句,只保留'if',並確保內部'return true;'因爲編譯器會轉到'super'執行。 – Yupi

+0

您是否使用調試器來查看執行是否達到您的if語句? –

+0

@PeriHartman是的,我認爲它從來沒有達到這個聲明,因爲調試器上沒有顯示任何東西 – Shells

回答

0

您必須實現以下方法來選擇菜單

用於選擇菜單項創建菜單

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.main, menu);///here add your menu layout 
    return true; 
} 

這種方法需要實現

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    switch (item.getItemId()) { 
     case R.id.new_game: 
      newGame(); 
      return true; 
     case R.id.help: 
      showHelp(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

不添加硬編碼身份證比較你可以只添加你的物品ID R.id.yourid

+1

非常感謝! – Shells