【问题标题】:onBackpressed() Going to same activity for first timeonBackpressed() 第一次去同一个活动
【发布时间】:2017-04-10 10:03:08
【问题描述】:

我也尝试使用finish(),但最终会遇到同样的问题,每次都是第一次进行相同的活动。如果我使用意图返回意味着结果活动会重新加载,所以对于这种情况我只需要 onBackPressed() 函数。

 mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {

    if(type.equals(AppConstantsUtils.VIDEO)) {

      onBackPressed();

    }
    else{
      onBackPressed();

    }

这是我在 Tabfragment 之前使用的

 private void setupUi(View view) {
mMediaVp = (ViewPager) view.findViewById(R.id.media_view_pager);
mMediaVp.setOffscreenPageLimit(3);
mTabLayout = (TabLayout) view.findViewById(R.id.media_tab_layout);
mTabLayout.setVisibility(View.GONE);
ArrayList<Fragment> fragments = new ArrayList<>(3);
if(pos.equals("1")) {
  fragments.add(new PhotoListFragment());
}
else if(pos.equals("2")) {
  fragments.add(new VideoListFragment());
}
else if(pos.equals("3")) {
  fragments.add(new AudioListFragment());
}
else{
  fragments.add(new VideoListFragment());
}

ArrayList<String> titles = new ArrayList<>(3);
if(pos.equals("1")) {
  titles.add("Photos");
}
  else if(pos.equals("2")) {

  titles.add("Videos");
}
  else if(pos.equals("3")) {
    titles.add("Audios");
  }
  else {
    titles.add("Videos");
  }
mAdapter = new TabsPagerAdapter(getFragmentManager(), titles, fragments);
mMediaVp.setAdapter(mAdapter);
mTabLayout.setupWithViewPager(mMediaVp);
}

【问题讨论】:

  • 您的 if-else 语句对这两种情况执行相同的操作...
  • 我之前用过 Intent 作为 vid 类型,所以我还没有删除它。
  • 你在 Fragment 上使用 onBackPressed() 吗?
  • 不,我在 Activity 中使用它返回片段 @AGMTazim
  • 发布 onBackPressed() 的代码;

标签: android android-fragments fragment onbackpressed


【解决方案1】:

您既然使用了片段,就应该阅读this。 您只是不能使用onBackPressed(),当您导航到片段时必须将片段添加到后台堆栈,并在调用onBackPressed() 时弹出备份。希望有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-05
    • 2016-03-21
    • 2014-08-13
    相关资源
    最近更新 更多