Android 导航抽屉列表视图片段
我想制作一个导航抽屉,它将通过listview填充。现在,我希望通过单击列表中的每个项目,根据我的选择打开一个片段。我该怎么做 NavigationDrawer在菜单中不使用ListView,NavigationDrawer直接使用菜单项。这意味着在源代码中,您可以根据需要以编程方式将项添加到菜单中 您的NavigationDrawer活动或您命名的任何内容 您可以使用将项目添加到菜单中Android 导航抽屉列表视图片段,android,Android,我想制作一个导航抽屉,它将通过listview填充。现在,我希望通过单击列表中的每个项目,根据我的选择打开一个片段。我该怎么做 NavigationDrawer在菜单中不使用ListView,NavigationDrawer直接使用菜单项。这意味着在源代码中,您可以根据需要以编程方式将项添加到菜单中 您的NavigationDrawer活动或您命名的任何内容 您可以使用将项目添加到菜单中 @Override public boolean onCreateOptionsMenu(Menu menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// To Inflate the menu:
// this adds items to the navigation drawer menu if it is present.
getMenuInflater().inflate(R.menu.dashboard, menu);
return true;
}
默认情况下,此方法使用res/menu/menu_file.XML中的XML布局创建静态菜单
但是如果您遵循下一个源代码,您将能够以编程方式向导航抽屉添加更多项目
方法add()重载:
- 添加(整数标题)
- 添加(字符序列标题)
- 添加(int-groupId、int-itemId、int-order、int-titles)李>
- 添加(int-groupId、int-itemId、int-order、CharSequence-title)李>
@Override
public boolean onCreateOptionsMenu(Menu menu) {
for(String itemName : itemsName){
int itemId = Arrays.asList(itemsName).indexOf(itemName);
menu.add(Menu.NONE, itemId, Menu.NONE, itemName);
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
//here you need the logic of what action
//your item is going to take
//but that is up to you
//how do you want to know what to do
//with a dynamic unknown array of options.
if (itemId == 0){
doSomething();
return true;
}
return false;
}
}
要管理每个单击事件,您需要根据动态数组中要执行的操作数组来解决它,因为您需要知道菜单项作为菜单选项需要执行或表现的每个操作。
但通常情况下,您的单击侦听器会使用以下菜单项:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
for(String itemName : itemsName){
int itemId = Arrays.asList(itemsName).indexOf(itemName);
menu.add(Menu.NONE, itemId, Menu.NONE, itemName);
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
//here you need the logic of what action
//your item is going to take
//but that is up to you
//how do you want to know what to do
//with a dynamic unknown array of options.
if (itemId == 0){
doSomething();
return true;
}
return false;
}
}
享受 选项菜单与
NavigationView
使用的菜单资源完全无关。