0

私のアプリケーションにはアクティビティがあります。それらをアクティビティ 1、2、3 と呼びましょう。それらはすべて MainActivity の子です。私のアプリケーションでは、子アクティビティごとに次のように定義します。

    <activity
        android:name="SettingsActivity"
        android:label="@string/title_gen_activity_settings"
        android:parentActivityName="MainActivity" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="MainActivity" />
    </activity>

onOptionsItemSelected では、次のように処理されました。

    else if(item.getItemId() == R.id.set_general_settings){
        Intent intent = new Intent(this, GeneralSettingsActivity.class); 
        startActivity(intent);
    }

ただし、たとえば main->1->2->3 から移動してから上ボタンを押すと、3->2->1-> main が返されます。3->メインに戻りません。その理由は何ですか?

4

1 に答える 1

1

ハードウェアの戻るボタンを処理するには、このコードを使用できます (アクティビティで戻るボタンを処理する方法に記載されています) 。

@Override
public void onBackPressed() {//for api level 5
    // your code.
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {//higher than api 5
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        // your code
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

最小 API がレベル 5 以下に設定されている場合は、最初の API を使用してください (動作するはずであると私が判断できる限り)。

ここで、上に移動する必要があります。したがって、コードのコメントがある場所には、次のように記述できるはずです。

NavUtils.navigateUpFromSameTask(this);

適切にナビゲートします。

于 2014-03-04T03:35:50.257 に答える