Java 从片段移回上一个活动

Java 从片段移回上一个活动,java,android,android-layout,android-activity,android-fragments,Java,Android,Android Layout,Android Activity,Android Fragments,我有一个片段活动,当用户按下后退按钮时,它关闭应用程序 为了尝试解决此问题,我已尝试: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { onBackPressed(); } return super.onKeyDown(keyCode, event); } @Override public void onBackPres

我有一个片段活动,当用户按下后退按钮时,它关闭应用程序

为了尝试解决此问题,我已尝试:

@Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
    onBackPressed();

}

return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
   Log.d("CDA", "onBackPressed Called");
   Intent intent = new Intent(this, betaEventsActivity.class);
   startActivity(intent);
}
问题是,这并不奏效。它只将用户带到指定的活动,而不一定返回到上一个活动

我也尝试过:

@Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//***Change Here***
        startActivity(intent);
        finish();
        System.exit(0);

    }

    return super.onKeyDown(keyCode, event);
    }
但这只是关闭应用程序

以下是我的碎片活动代码:

public class usermatch extends FragmentActivity {
    private PageAdapter mPagerAdapter;
    private FeedbackDialog feedBack;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.viewpager_layout);
        initialisePaging();
        feedBack = new FeedbackDialog(this, "id");


    }

    private void initialisePaging() {
        // TODO Auto-generated method stub
        List<Fragment> fragments = new Vector<Fragment>();
        fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
        fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
        fragments.add(Fragment.instantiate(this, Fragment3.class.getName()));
        fragments.add(Fragment.instantiate(this, Fragment4.class.getName()));
        fragments.add(Fragment.instantiate(this, Fragment5.class.getName()));



        mPagerAdapter = new PageAdapter(this.getSupportFragmentManager(), fragments);
        ViewPager pager = (ViewPager) findViewById(R.id.viewpager);
        pager.setAdapter(mPagerAdapter);

    }

    @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//***Change Here***
        startActivity(intent);
        finish();
        System.exit(0);

    }

    return super.onKeyDown(keyCode, event);
    }
public类usermatch扩展了碎片活动{
专用页面适配器;
私人反馈对话反馈;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.viewpager\u布局);
初始化分页();
反馈=新反馈对话框(此“id”);
}
私有void initialisePaging(){
//TODO自动生成的方法存根
列表片段=新向量();
add(Fragment.instantiate(这是Fragment1.class.getName());
add(Fragment.instantiate(这是Fragment2.class.getName());
add(Fragment.instantiate(这是Fragment3.class.getName());
add(Fragment.instantiate(这是Fragment4.class.getName());
add(Fragment.instantiate(这是Fragment5.class.getName());
mPagerAdapter=新的页面适配器(this.getSupportFragmentManager(),fragments);
ViewPager pager=(ViewPager)findViewById(R.id.ViewPager);
寻呼机设置适配器(mPagerAdapter);
}
@凌驾
公共布尔onKeyDown(int-keyCode,KeyEvent事件){
if(keyCode==KeyEvent.keyCode\u BACK){
意向意向=新意向(意向.行动\主要);
intent.addCategory(intent.CATEGORY_HOME);
intent.setFlags(intent.FLAG_ACTIVITY_CLEAR_TOP);//***在此处更改***
星触觉(意向);
完成();
系统出口(0);
}
返回super.onKeyDown(keyCode,event);
}

任何帮助都将不胜感激。

尝试使用Overriding onBackPressed()。

Override onBackPressed方法并将寻呼机设置为上一项,如下所示:

@Override
public void onBackPressed() {
    if (pager.getCurrentItem() == 0) {
        // If the user is currently looking at the first step, allow the
        // system to handle the Back button.
        // This calls finish() on this activity and pops the back stack.

        super.onBackPressed();
    } else {
        // Otherwise, select the previous step.
        pager.setCurrentItem(mPager.getCurrentItem() - 1);
    }
}

请发布您尝试返回到的活动的代码。另外,您是否打开了您尝试返回到的活动中的片段活动?感谢您的快速响应。问题是用户可以从各种活动中获取此片段活动,因此我不能将其重定向到特定活动,只需将其移回e最后一个已知位置谢谢你的建议。不幸的是,这并不能解决问题。