2017-10-12 33 views
1

這是XML文件:爲什麼菜單項不顯示爲動作?

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

    <item 
     android:id="@+id/main_main_prefs" 
     android:icon="@drawable/ic_tune_white_24px" 
     android:title="@string/menu_settings" 
     android:visible="true" 
     app:showAsAction="always" /> 
</menu> 

This is the Android studio render 但是,這是在實際設備的情況下:
Actual Device

更新:這是菜單通貨膨脹代碼。圖片是真實設備中的響應。

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     (new MenuInflater(this)).inflate(R.menu.menu_main,menu); 
     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()){ 
      case R.id.main_main_prefs: 
       Toasty.info(this,"Prefs Was Clicked").show(); 
       break; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

the response

+0

你確定你已經膨脹了正確的菜單文件嗎?檢查'inflater.inflate(R.menu.main,菜單)中的菜單ID;' –

+0

是的,我非常確定。 –

+0

你可以發佈代碼嗎? –

回答

0

你必須這樣

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

創建菜單,而不是

(new MenuInflater(this)).inflate(R.menu.main,menu); 
return super.onCreateOptionsMenu(menu); 
0

你可以嘗試添加android:orderInCategory。類似這樣的:

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

    <item 
     android:id="@+id/main_main_prefs" 
     android:icon="@drawable/ic_tune_white_24px" 
     android:title="@string/menu_settings" 
     android:orderInCategory="100" 
     android:visible="true" 
     app:showAsAction="always" /> 
</menu> 
相關問題