java - 从 fragment 移回到上一个 Activity

标签 java android android-layout android-activity android-fragments

我有一个 FragmentActivity,当用户按下后退按钮时,它会关闭应用程序。

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

@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);
}

问题是这效果不好。它只是将用户带到指定的 Activity ,而不一定返回到上一个 Activity 。

我也尝试过:

@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);
    }

但这只是关闭应用程序。

下面是我的 FragmentActivity 代码:

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);
    }

如有任何帮助,我们将不胜感激。

最佳答案

尝试不覆盖 onBackPressed()。

关于java - 从 fragment 移回到上一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26529358/

相关文章:

java - 如何在 "::"方法引用运算符附近的 Java Stream API 中进行额外处理

java - 不确定如何正确使用 Swing 布局

java - 如何使用 yuicompressor-maven-plugin 让 maven 使用缩小文件构建 war

android - NoSuchMethodError getChildFragmentManager()

android - 如何让我的按钮在我的自定义对话框中可见

java - Java 中的物理模拟

java - 在 Android 游戏中添加问题的问题

java - 如何将 SPDY 与 HttpClient 4 一起使用?

Android - 任何大小文本的等宽布局

android - 在另一个 View 的中心对齐 View