2013-03-26 88 views
1

嗨我想在onCreateOptionMenu()內創建一個PopUpMenu我的目標API級別爲10,我的minSdk版本爲8,因爲您知道沒有硬菜單鍵,所以對於軟菜單鍵我使用onCreateOtionMenu()在我的屏幕下方創建一個菜單選項,並且它也在工作。當我按下我的屏幕中的Soft menu選項時,第一次顯示PopUpMenu,下一次顯示時沒有顯示任何內容。在側面創建PopUpMenu onCreateOptionsMenu()

這裏是內部OnCreateOptionssMenu()方法

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

    PopUpMenu popup=new PopUpMenu(this,txtView); 
         popup.getMenuInflater().inflate(R.menu.option,popup.getMenu()); 
    popup.show(); 

         //popup.dismiss(); 
         //menu.clear(); 
         //getMenuInflater().inflate(R.menu.fragmenttwo_menu, menu); 
          return (super.onCreateOptionsMenu(menu)); 


         } 

注意我的PopUpMenu代碼片段:這裏txtView是一個TextView可以說低於視圖錨我正在顯示的彈出菜單項。 對於calrification這裏我使用ViewPager

+1

它移動到您的onCreate方法所取代。這應該可以解決您的問題。 – Neil 2013-03-26 08:54:00

+0

感謝您的快速回放,但我的問題,當我將按軟菜單鍵它應該顯示PopUpMenu items.if我會把它onCreate()方法它的拋出NullPointerException.i無法調用popup.getMenuInflater()。 menu.option,popup.getMenu());在Oncreate()方法中。 – 2013-03-26 09:01:19

+0

我正在做類似的事情! http://stackoverflow.com/questions/16621070/get-context-of-popupmenu-like-contextmenu – toobsco42 2013-05-18 16:04:48

回答

0

後。 PopUpMenu僅在11+ API級別後纔可用。在我的情況下有時會顯示它,有時候它不會顯示。如果您有任何解決方案,請讓我通知。

0

,你可以用這樣的方式:

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 

     if (keyCode == KeyEvent.KEYCODE_MENU && event.getAction() == 0) { 

      Toast.makeText(MainActivity.this, "hii", Toast.LENGTH_SHORT).show(); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

編輯: 在上面的代碼中存在Toast這就是爲什麼一段時間後dismiss。它取決於你的代碼你在內部完成了什麼方法。現在檢查下面的代碼。 dialog直到你dismiss吧。

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 

     if (keyCode == KeyEvent.KEYCODE_MENU && event.getAction() == 0) { 

      PopupMenu popupMenu = new PopupMenu(MainActivity.this, lView); 
      popupMenu.getMenuInflater().inflate(R.menu.activity_main, 
        popupMenu.getMenu()); 
      popupMenu.show(); 

      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

希望你能理解....做了大量[R & d的我發現,softmenu鍵顯示爲PopUpMenutarget version 10不可能

+0

相同之前彈出顯示有一段時間然後消失。 – 2013-03-26 09:23:05

+0

檢查我編輯的答案。 – 2013-03-26 09:34:18

+0

嘿,我正在接受我的問題,我想在onKeyDown()裏面顯示一個PopUpMenu,它的顯示會突然消失。我會編輯你的answar,希望你能抓住我的觀點。 – 2013-03-26 09:40:10

0

我用user1381827的答案,但後來意識到菜單不斷消失。這裏是我結束了代碼:

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_MENU && event.getAction() == 1) { 
     ImageView v = (ImageView) findViewById(R.id.header); 
     showHeaderMenu(v); 
     return false; 
    } 

    if(keyCode == KeyEvent.KEYCODE_MENU || keyCode == KeyEvent.KEYCODE_BACK) return super.onKeyUp(keyCode, event); 
    return true; 
} 

但在一般情況下,最後兩行可以/應該只是

return super.onKeyUp(keyCode, event); 
相關問題