Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-单击菜单项打开fragment_Java_Android_Android Studio - Fatal编程技术网

Java-单击菜单项打开fragment

Java-单击菜单项打开fragment,java,android,android-studio,Java,Android,Android Studio,我正在android studio上使用id在组中添加菜单。我遇到了菜单单击事件的问题,因为当我单击它时,它不会做任何事情 这就是我尝试过的: 公共布尔值onOptionsItemSelected(菜单项项){ Fragment newFragment=null;//这是要放入FrameLayout的片段 int id=item.getItemId() 以下是我用来添加菜单的内容: NavigationView navigationView = findViewById(R.id.nav_vie

我正在android studio上使用id在组中添加菜单。我遇到了菜单单击事件的问题,因为当我单击它时,它不会做任何事情

这就是我尝试过的:

公共布尔值onOptionsItemSelected(菜单项项){ Fragment newFragment=null;//这是要放入FrameLayout的片段 int id=item.getItemId()

以下是我用来添加菜单的内容:

NavigationView navigationView = findViewById(R.id.nav_view);
Menu menu = navigationView.getMenu();

try {
    JSONArray jsonArray = new JSONArray(folders);
    int id = 1;
    int order = 100;

    for (int i = 0; i < jsonArray.length(); i++) {
        String folder = jsonArray.getString(i);

        menu.add(R.id.nav_group1, id, order, folder)
            .setIcon(R.drawable.ic_baseline_folder_24);
        id++;
            order++;
    }
} catch (JSONException e) {
    e.printStackTrace();
}

mAppBarConfiguration = new AppBarConfiguration.Builder(
            R.id.nav_inbox, R.id.nav_important, R.id.nav_sent, R.id.nav_drafts, R.id.nav_spam, R.id.nav_trash, R.id.nav_group1, R.id.nav_create_new_folder, R.id.nav_contact)
            .setDrawerLayout(drawer)
            .build();
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);
NavigationUI.setupWithNavController(navigationView, navController);
NavigationView-NavigationView=findviewbyd(R.id.nav_视图);
Menu Menu=navigationView.getMenu();
试一试{
JSONArray JSONArray=新的JSONArray(文件夹);
int-id=1;
整数阶=100;
for(int i=0;i
我试图实现的是,当我点击菜单时,我想打开
nav_组下的片段


当我使用java添加菜单时,你能给我举个例子吗?如果你使用的是
NavHostFragment
,你就不应该使用
FragmentTransaction
。对吗?@ianhanniballake不,我没有使用
NavHostFragment
,那么我怎么能点击菜单项呢事件?我应该使用什么事件来让菜单项click event工作?它看起来确实像是您使用了
R.id.nav\u主机\u片段
Navigation.findNavController
调用。@ianhanniballake是的,我正在使用它,所以当我单击菜单项时,我如何调用片段邮箱?@ianhanniballake你有什么想法吗??????????????????
NavigationView navigationView = findViewById(R.id.nav_view);
Menu menu = navigationView.getMenu();

try {
    JSONArray jsonArray = new JSONArray(folders);
    int id = 1;
    int order = 100;

    for (int i = 0; i < jsonArray.length(); i++) {
        String folder = jsonArray.getString(i);

        menu.add(R.id.nav_group1, id, order, folder)
            .setIcon(R.drawable.ic_baseline_folder_24);
        id++;
            order++;
    }
} catch (JSONException e) {
    e.printStackTrace();
}

mAppBarConfiguration = new AppBarConfiguration.Builder(
            R.id.nav_inbox, R.id.nav_important, R.id.nav_sent, R.id.nav_drafts, R.id.nav_spam, R.id.nav_trash, R.id.nav_group1, R.id.nav_create_new_folder, R.id.nav_contact)
            .setDrawerLayout(drawer)
            .build();
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);
NavigationUI.setupWithNavController(navigationView, navController);