Android - 使用XML模板以编程方式添加菜单项

时间:2016-01-26 08:51:29

标签: android android-layout android-menu

我有以下menu.xml文件。

<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android">


    <item android:id="@+id/nav_item_one"
          android:title="Item One"
          android:icon="@drawable/ic_build_black"
          android:checkable="true"/>

    <item android:id="@+id/nav_item_two"
          android:title="Item Two"
          android:icon="@drawable/ic_account_balance_black"
          android:checkable="true"/>

</menu>

我想以编程方式添加一些菜单项,并且已成功完成以下操作。

public class NavDrawer extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

    ...

    myMenu.add(0, 100, 0, "Item Three").setIcon(R.drawable.ic_some_icon).setCheckable(true);
    myMenu.add(0, 101, 0, "Item Four").setIcon(R.drawable.ic_some_icon).setCheckable(true);

...

问题是我必须调用几种方法来设置我想要的属性。如果我可以使用XML模板来定义所有项目,那将是理想的。

该文件可能如此。

<?xml version="1.0" encoding="utf-8"?>

<item android:id="@+id/nav_item_template"
      android:icon="@drawable/ic_some_icon"
      android:checkable="true"/>

添加菜单项可能会这样做。

myMenu.add(0, 101, 0, R.id.nav_item_template).setIcon(R.drawable.ic_some_icon).setCheckable(true);

Android SDK中是否有这样的功能或能力?

P.S。此菜单属于为DrawerLayout构建的NavigationView。

0 个答案:

没有答案