首页 > 解决方案 > 使用浮点按钮创建菜单项

问题描述

我正在制作一个计数器应用程序,希望能够有一个加号按钮(我设计的)打开一个对话框,允许用户输入标题并单击添加,然后让这个新计数器自动添加到菜单栏(右上角的 3 个破折号。)

我有 0 编码经验,不知道如何尝试,任何帮助或对我找不到(我看过)的视频的引用将不胜感激。

MENU ITEM CODE:
 <item
     android:id="@+id/nav_counter1"
     android:icon="@android:drawable/ic_menu_view"
     android:title="Counter 1" />
 <item

FLOATING POINT BUTTON CODE:
<android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        android:scaleType="fitXY"
        android:tint="@android:color/white"
        app:backgroundTint="#0578C4"
        app:fabCustomSize="80dp"
        app:srcCompat="@android:drawable/ic_input_add"/>

这是我希望每个菜单项看起来如何的代码,但使用用户的自定义标题而不是“计数器 X”(X 是 1、2、3 等)。

标签: android

解决方案


首先,创建一个ArrayList带标题的(假设你知道怎么做)。您可能需要除 之外的其他类String,但假设 aString就足够了。

ArrayList<String> myList = new ArrayList<String>;

然后,在对话框的“添加”按钮上

myList.add(theNewInsertedTitle);
invalidateOptionsMenu(); // this will recreate your options menu

onCreateOptionsMenu然后,从您的活动中覆盖您的。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    for (int i = 0; i < myList.size(); i++) {
        MenuItem mnu = menu.add(Menu.NONE, i, Menu.NONE, myList.get(i));
        mnu.setIcon(android.R.drawable.ic_menu_view);
    }
    // this is needed if you want to show icons on options menu
    if(menu instanceof MenuBuilder) {  //To display sportId on overflow menu
        MenuBuilder m = (MenuBuilder) menu;
        m.setOptionalIconsVisible(true);
     }

    return true;
}

就这样...


推荐阅读