1

从膨胀的设置菜单中选择后,我试图完成我的主要活动,但由于某种原因它没有完成..任何想法为什么?

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    switch (item.getItemId()){
    case R.id.action_settings:
        Intent i = new Intent (getApplicationContext(), Prefs_Activity.class);
        startActivity(i);
        finish();
        return true;
    default:
    return super.onOptionsItemSelected(item);

    }

}

完成设置活动后,打算重新启动 mainactivity i,最终得到两个 mainactivity 的堆栈...

我的第一个想法是将完成方法移到 startactivity 上方...但这似乎会杀死以下代码...

4

2 回答 2

0

该活动实际上正在关闭..问题在于 Prefs_Activity 类中的调用完成会重新启动从中派生 startactivity 意图的活动类,以及以意图启动 mainactivity ......

一如既往的社区,感谢您的所有帮助!

于 2013-09-21T08:32:59.343 回答
0

替换以下代码

    Intent i = new Intent (getApplicationContext(), Prefs_Activity.class);
    finishFromChild(CurrentActivity.this);
    startActivity(i);
    return true;

而不是你的

    Intent i = new Intent (getApplicationContext(), Prefs_Activity.class);
    startActivity(i);
    finish();
    return true;

参考: http: //developer.android.com/reference/android/app/Activity.html#finishActivityFromChild (android.app.Activity , int)

于 2013-09-21T08:34:52.220 回答