在android中执行onbackpressed
问题描述:
我有activity1带我到activity2,需要我来片段化。我会从片段想回去活性2在android中执行onbackpressed
public void onBackPressed() {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
答
虽然从活性2添加片段将其添加到堆栈中这样
getSupportFragmentManager().beginTransaction()
.replace(R.id.frame_layout, new SampleFragment())
.addToBackStack(SampleFragment.class.getSimpleName())
.commit();
而且onBackPressed检查片段在堆栈中,并弹出它
@Override
public void onBackPressed() {
if(getSupportFragmentManager().getBackStackEntryCount()>0){
Fragment fragment=getSupportFragmentManager().findFragmentById(R.id.YOUR_FRAME_LAYOUT_ID);
if(fragment!=null && fragment.getClass().getSimpleName().equalsIgnoreCase(SampleFragment.class.getSimpleName())){
getSupportFragmentManager().popBackStackImmediate();
}
}else {
super.onBackPressed();
}
}
答
的片段获得backpressed事件,并有拨打
getactivity().getsupportfragmentmanager().popbackstack();
答
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() > 0) {
getFragmentManager().popBackStack();
}
else
super.onBackPressed();
}
答
添加一个片段交易堆栈中。
怎么能活性2'take'你一个片段???它可以打开一个片段本身,或开始另一个活动包含片段 – mrid