android - 使用浮点按钮创建菜单项
问题描述
我正在制作一个计数器应用程序,希望能够有一个加号按钮(我设计的)打开一个对话框,允许用户输入标题并单击添加,然后让这个新计数器自动添加到菜单栏(右上角的 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 等)。
解决方案
首先,创建一个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;
}
就这样...