我正在使用本教程来实现facebook登录等。
我在此添加了新片段以显示朋友列表。现在,当我按下我新添加的片段上的后退按钮时,它会将我带到SPLASH片段,我想在操作栏上的后退按钮上执行相同的操作。意味着当我在我的新片段上时,它会在操作栏上显示一个后退按钮。然后按下后退按钮将我带回SPLASH屏幕。
private void showFragment(int fragmentIndex, boolean addToBackStack) {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
for (int i = 0; i < fragments.length; i++) {
if (i == fragmentIndex) {
transaction.show(fragments[i]);
} else {
transaction.hide(fragments[i]);
}
}
if (addToBackStack) {
transaction.addToBackStack(null);
}
transaction.commit();
}
答案 0 :(得分:4)
您可以通过两种方式实现这一目标:
<强> 1 即可。你的片段里面
@Override
public void onDetach()
{
super.onDetach();
PUT YOUR CODE HERE
}
这将在片段完成时调用。
<强> 2 即可。只需在您的片段之间转换时添加addToBackStack
,如下所示:
fragmentManager.beginTransaction().replace(R.id.content_frame,fragment).addToBackStack("tag").commit();
如果你编写addToBackStack(null),它会自己处理它,但如果你给一个标记,你应该手动处理它。
<强>编辑:强>
进行交易
FragmentTransaction fragmentTransaction = getActivity().getSupportFragmentManager().beginTransaction();
Fragment scheduleFragment = new ScheduleFragment();
fragmentTransaction.replace(R.id.content_container, scheduleFragment, "scheduleFragment");
fragmentTransaction.addToBackStack("scheduleFragment");
fragmentTransaction.commit();
@Yawar actionbar仅用于活动,当你按动作栏主页按钮 - &gt;
时,这将添加到活动中,它将被称为evertime。@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// app icon in action bar clicked; goto parent activity.
this.finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
答案 1 :(得分:-1)
我在搜索后在stackoverflow上得到了这个代码,希望这可以帮到你
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);// in on Create()
搜索代码onOptionsItemSelected(MenuItem item)
并以这种方式编辑
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// change your behaviour here
Intent intent = new Intent(this, yourclass.class);// i started new activity here
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
return true;
}
return super.onOptionsItemSelected(item);
}