2013-01-17 68 views
3

後,我有一個按鈕:如何添加新的項目,彈出菜單中單擊

<Button 
     android:id="@+id/bot_button1" 
     android:layout_width="120dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:textSize="24sp" 
     android:text="@string/bot_button1_tx" /> 

這是我的主要活動:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    activity = this; 

    setContentView(R.layout.activity_main); 

    button1 = (Button) findViewById(R.id.bot_button1); 
    button1.setOnClickListener(onClickListener); 

    Log.d(className, "onCreate"); 

private OnClickListener onClickListener = new OnClickListener() { 
    @Override 
    public void onClick(final View v) { 
     switch(v.getId()){ 
     case R.id.bot_button1: 
      showPopupMenu(v, 1); 
      break; 
     } 
    } 
}; 

private void showPopupMenu(final View v, Integer i){ 
    PopupMenu popupMenu = new PopupMenu(MainActivity.this, v); 
    switch (i) { 
    case 1: 
     popupMenu.getMenuInflater().inflate(R.menu.menu1, popupMenu.getMenu()); 
     break; 
    } 

    popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { 
     @Override 
     public boolean onMenuItemClick(MenuItem item) { 

      new AlertDialog.Builder(activity). 
       setTitle("TITLE"). 
       setMessage("MESSAGE"). 
       setAdapter(adapter, new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         // TODO: user specific action 
         dialog.dismiss(); 
        } 
       }).create().show(); 
     return true; 
     } 
    }); 
    popupMenu.show(); 
} 

我怎麼能顯示更多的項目時,從的彈出菜單中的項目被選中(點擊)?理想情況下的情況:PopupMenu在選擇後保持可見狀態,並且新的PopupMenu出現在所選項目的旁邊。或彈出式菜單展開顯示子項目。

我試着介紹第二個PopupMenu onMenuItemClick(),但它只取代了第一個PopupMenu。

+0

在此,我創造我beleive,我使用PopupWindow控制代替的PopupMenu控件創建一個完全自定義的菜單系統的應用程序。當然,我這樣做,因爲我想要一個完全自定義的外觀和感覺,但我只需要單一的水平。環顧四周,我還沒有看到任何信息表明它是或不可能在屏幕上同時擁有多個PopupWindow控件。 – trumpetlicks

+0

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

回答

1

我用了一個新的彈出式菜單來解決這個問題

public OnMenuItemClickListener listener = new OnMenuItemClickListener() { 
    @Override 
    public boolean onMenuItemClick(MenuItem item) { 

     switch (item.getItemId()) { 
     case R.id.menu2_3_3: 
      popupMenu2.getMenuInflater().inflate(R.menu.menu2_3_3, popupMenu2.getMenu()); 
      popupMenu2.show(); 
      popupMenu2.setOnMenuItemClickListener(listener2); 
相關問題