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

    }

}

設定アクティビティを終了した後、メイン アクティビティ i を再起動する意図で、2 つのメイン アクティビティのスタックで終了します...

私の最初の考えは、finishメソッドをstartactivityの上に移動することでした...しかし、それは次のコードを殺してしまうようです...

4

2 に答える 2

0

アクティビティは実際には閉じています.Prefs_Activityクラスでfinishを呼び出すと、startactivityインテントが派生したアクティビティクラスが再起動され、メインアクティビティがインテントで開始されるという問題があります...

いつものコミュニティのように、すべての助けに感謝します!

于 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 に答える