我有以下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。