小编Ork*_*ğit的帖子

按下后退按钮后重新选择正确的NavigationView菜单项

我有一个Android应用程序,它有一个带有4个片段的NavigationView.我可以通过导航菜单在片段之间导航,当我选择另一个片段时,我将前一个片段添加到后栈中以提供后退按钮功能.

我的问题是当我按下后退按钮转到上一个片段时,NavigationView仍然会将旧片段显示为所选片段.如果可能,我想将所选选项更新为屏幕上的片段.

示例:
我从A开始,从NavigationView中选择B. 当前屏幕为B,NavigationView将所选项目显示为B.如果我按后退按钮,我的当前屏幕再次变为A,但NavigationView将B显示为所选项目.

这是我的onNavigationItemSelected方法:

public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();
        HomeFragment fragment = null;
        Class type = null;
        switch (id) {
            case R.id.nav_home:
                type = HomeNavigationFragment.class;
                break;
            case R.id.nav_groups:
                type = GroupsNavigationFragment.class;
                break;
            case R.id.nav_profile:
                type = ProfileNavigationFragment.class;
                break;
            case R.id.nav_messages:
                type = MessageNavigationFragment.class;
                break;
        }
        fragment = HomeFragment.newInstance(mUser, type);
        FragmentManager manager = getSupportFragmentManager();
        manager.beginTransaction().replace(R.id.fragment_container, fragment).addToBackStack("fragment" + code++).commit();
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
Run Code Online (Sandbox Code Playgroud)

谢谢.

android android-fragments

7
推荐指数
1
解决办法
3017
查看次数

如何从c ++应用程序启动java应用程序,传递参数并等待java应用程序的结果?

在C++应用程序中,我需要启动一个Java应用程序并将参数传递给它的标准输入,当java应用程序完成后,然后在C++应用程序中接收结果.有没有使用文件,套接字等快速简单的方法?

PD:java应用程序与c ++应用程序位于同一目录中.

一些例子?拜托,对不起我的英文

c++ java

1
推荐指数
1
解决办法
57
查看次数

将具有不同值的N个项目分配到仅在组中的项目总和为D时才有效的组中

我有一个N个整数的数组,每个都有5到20之间的不同值.我想从它们中形成尽可能多的组,使得它们的总和是一个整数值D.

形成的组数,组的数量或阵列的每个元素必须使用的数量没有限制; 我们必须创建尽可能多的组,只有一组足够.

这是我的极限:

5 <= V:项目的值<= 20
5 <= N:元素数量<= 10000
20 <= D:单个组的数字总和<= 2000

例子

答:
数组:{5,7,7,6,6,8,8,10,11,12}
D:40
公认的解决方案之一:
[[5,7,8,8,12],[7, 6,6,10,11]

B:
数组:{5,6,6,7,7,10}
D:20
公认的解决方案之一:
[[6,7,7]]

建议的算法最好应该是psicocode或基于C语言,Java或Phyton.如果接受的答案不是Java,那么在接受解决方案后,它将被移植到Java中并在此处共享.

谢谢.

编辑:似乎无论选择哪种方法,如果N是非常大的数字,将花费大量时间来计算,我将尝试将N的最大值限制为50-100倍,然后测试更大的情况.

编辑2:很多很棒的解决方案,但是我需要花一些时间来检查它.

java algorithm

0
推荐指数
1
解决办法
146
查看次数

标签 统计

java ×2

algorithm ×1

android ×1

android-fragments ×1

c++ ×1