onBackpressed()第一次去同样的活动

问题描述:

我尝试使用finish(),但最终像同样的问题,每次它首次进入相同的活动。如果我使用意图返回意味着结果活动得到重新加载,所以对于这种情况下,我只需要onBackPressed()函数。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); 
} 
+0

你的if-else语句对两种情况都做同样的动作... – AlexTa

+0

我已经使用Intent for vid类型befor,这就是我没有移除它的原因。 –

+0

你在片段上使用onBackPressed()吗? –

您是因为之前使用fragements你应该阅读this。 您只能使用onBackPressed(),当您调用onBackPressed()时,您必须将碎片添加到backstack以导航到碎片并弹出备份。希望有帮助