Java 在bottomnavigationview中,在处理程序(1分钟)运行之前,如何显示不同的活动
参加活动后,我在bottomNavView中显示通知徽章2分钟。我会在2分钟后取下徽章。 但是我想为这2分钟(处理程序)显示一个不同的活动。 场景是:在bottomnavView中,单击第三个选项卡-->然后单击该片段内的按钮-->另一个活动-->返回到仪表板后,徽章可见两分钟。 这两分钟我想在点击第三个标签时显示另一个活动。 任何帮助都将不胜感激。 多谢各位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) {
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+”);尝试查看布尔值是否发生更改