Упражнение B: Вернитесь к Упражнению A на вызовах панели действий A.onCreate (). Кнопка Назад не

346 просмотра

4 ответа

710 Репутация автора

У меня есть активность AActivity, которая называет активность BActivity. В AndroidManifestпункте B я указываю следующее:

<activity android:name=".main.BActivity"
        android:parentActivityName=".main.AActivity">
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value=".main.AActivity" />
    </activity>

Если я вхожу Activity Bи нажимаю кнопку «Назад» на телефоне, то я возвращаюсь к тому, чтобы больше Activity Aне звонить A.onCreate();- я так хочу. Но если я вхожу Activity Bи нажимаю ActionBar's Back buttonв левом верхнем углу, то я возвращаюсь Activity Aснова, но A.onCreate();вызывается. Как я могу использовать кнопку в верхней части действия, чтобы вести себя так же, как кнопка возврата телефона, то есть не вызывать StartingActivity.onCreate ()?

Кстати: деятельность A и B простираются от AppCompatActivity.

Автор: MojioMS Источник Размещён: 18.07.2016 11:58

Ответы (4)


0 плюса

2107 Репутация автора

Позвони finish() onBackPressed()и onOptionsItemSelected()когдаid == android.R.id.home

@Override
public void onBackPressed(){

    if(EcologDriverAIDApplication.DEBUG){

        Log.i(TAG, "onBackPressed");

    }
    finish();

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();

    //Back button pressed
    if (id == android.R.id.home) {
        finish();
        return true;
    }

    return super.onOptionsItemSelected(item);
}
Автор: Miguel Benitez Размещён: 18.07.2016 12:06

1 плюс

4498 Репутация автора

Внутри вашего OnClick(View view)вызова функции finish().
Связанное руководство

Автор: Nir Duan Размещён: 18.07.2016 12:08

1 плюс

28157 Репутация автора

вы можете использовать android:launchMode="singleTop"в манифесте внутри действия A. прочитайте следующую ссылку для более подробной информации верните родительское действие правильно

Автор: Pavneet_Singh Размещён: 18.07.2016 12:09

0 плюса

2974 Репутация автора

Как я могу использовать кнопку в верхней части действия, чтобы вести себя так же, как кнопка возврата телефона, то есть не вызывать StartingActivity.onCreate ()?

//declare android:onClick="backButtonPressed" in your xml in the back button layout
public void backButtonPressed(View view) {
    onBackPressed();
}

Почему это должно работать:

При нажатии нижней кнопки назад андроида, onBackPressed()называется. Как вы уже сказали, нижнее нажатие кнопки назад работает так, как вы этого хотите. Поэтому просто вызовите его из прослушивателя щелчка кнопки «Назад» на панели действий

Автор: Akeshwar Jha Размещён: 18.07.2016 12:14
Вопросы из категории :
32x32