Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.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 在bottomnavigationview中,在处理程序(1分钟)运行之前,如何显示不同的活动_Java_Android_Android Fragments_Android Activity_Handler - Fatal编程技术网

Java 在bottomnavigationview中,在处理程序(1分钟)运行之前,如何显示不同的活动

Java 在bottomnavigationview中,在处理程序(1分钟)运行之前,如何显示不同的活动,java,android,android-fragments,android-activity,handler,Java,Android,Android Fragments,Android Activity,Handler,参加活动后,我在bottomNavView中显示通知徽章2分钟。我会在2分钟后取下徽章。 但是我想为这2分钟(处理程序)显示一个不同的活动。 场景是:在bottomnavView中,单击第三个选项卡-->然后单击该片段内的按钮-->另一个活动-->返回到仪表板后,徽章可见两分钟。 这两分钟我想在点击第三个标签时显示另一个活动。 任何帮助都将不胜感激。 多谢各位 public boolean onNavigationItemSelected(@NonNull MenuItem item) {

参加活动后,我在bottomNavView中显示通知徽章2分钟。我会在2分钟后取下徽章。 但是我想为这2分钟(处理程序)显示一个不同的活动。 场景是:在bottomnavView中,单击第三个选项卡-->然后单击该片段内的按钮-->另一个活动-->返回到仪表板后,徽章可见两分钟。 这两分钟我想在点击第三个标签时显示另一个活动。 任何帮助都将不胜感激。 多谢各位

  public boolean onNavigationItemSelected(@NonNull MenuItem item) {

            switch (item.getItemId()) {

                case R.id.firsttab:

                    fragment = firsttabFragment.newInstance();
                    addButton.setVisibility(View.VISIBLE);

                    break;

                case R.id.secondTab:

                    fragment = secondTabFragment.newInstance();
                    addButton.setVisibility(View.VISIBLE);
                    break;

                case R.id.thirdTab:
                    fragment = thirdTabFragment.newInstance();
                    addButton.setVisibility(View.GONE);
                    break;


after coming back to anotherActivity, here is the badge i am showing for two minutes




   Utils.showBadge(DashBoardActivity.this, navView, R.id.thirdTab, "");
   final Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                Utils.removeBadge(navView, R.id.findatm);
            }
        }, 100000);

当您单击片段的按钮时,尝试更改第三个选项卡的单击侦听器。然后在处理程序中,将第三个选项卡的单击侦听器重置为原始侦听器。这样,在2分钟内单击第三个选项卡将带您进入“otherActivity”,2分钟后,单击第三个选项卡将显示原始片段

编辑:

下面是一些代码:

//在主活动中创建一个变量
公共布尔值twoMinutesActivated=false;
//在你的片段中
fragmentButton.setOnClickListener(…){
...
getActivity.setTwoMinutesActivated(真);
}
//在onNavigationItemSelected中
案例R.id.thirdTab:
如果(!两分钟激活){
fragment=thirdTabFragment.newInstance();
addButton.setVisibility(View.GONE);
}否则{
//启动第二项活动
}
打破
//在处理程序中
@凌驾
公开募捐{
Utils.removeBadge(导航视图,R.id.findatm);
两分钟激活=假;
}

谢谢您,先生@Adonis320做了同样的事情,但它不起作用:(有什么变化吗?试着调试这个问题:getActivity.setTwoMinutesActivated(true);//Log.i(“调试”,getActivity().twoMinutesActivated+”),在R.id.thirdTab//Log.i(“调试”,twoMinutesActivated+”);尝试查看布尔值是否发生更改