onBackpressed() 第一次转到相同的活动



我也尝试使用 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);
}

既然使用了 fragements,你应该阅读这篇文章。您只是不能使用onBackPressed()导航到片段时必须将片段添加到backstack,并在调用onBackPressed()时弹出备份。希望有帮助

最新更新