【问题标题】:How to add new items to popup menu after click单击后如何将新项目添加到弹出菜单
【发布时间】:2013-01-17 15:37:09
【问题描述】:

我有一个按钮:

<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,但它只替换了第一个 PopupMenu。

【问题讨论】:

  • 在我正在创建的应用程序中,我相信我使用 PopupWindow 控件而不是 PopupMenu 控件创建了一个完全自定义的菜单系统。当然,我这样做是因为我想要一个完全自定义的外观和感觉,而我的却只需要一个级别。环顾四周,我没有看到任何信息表明屏幕上是否可以同时显示多个 PopupWindow 控件。
  • 我在这里做类似的事情!!! stackoverflow.com/questions/16621070/…

标签: android onclick menuitem android-menu popupmenu


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多