Кнопка «Вверх» для перехода к различным действиям - PullRequest
0 голосов
/ 29 октября 2018

У меня есть действие MyActivity со стандартной кнопкой «Вверх», реализованной на его панели инструментов (стрелка влево в левом верхнем углу экрана).

Это действие уникально тем, что пользователь может перейти к нему из нескольких действий в моем приложении.

Мне нужна эта кнопка «Вверх», чтобы перейти к активности, из которой пришел пользователь (то же поведение, что и для кнопки «Назад» в Android).

Вместо этого он всегда направляет обратно к Домашнему действию, даже если пользователь не сразу пришел из-за этого кода в AndroidManifest.xml:

<activity
    android:name="com.myapp.activity.MyActivity"
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.myapp.activity.Home"
/>

Как мне переопределить это поведение, чтобы кнопка «Вверх» MyActivity возвращала пользователя к активности, с которой он пришел, и не всегда к домашнему действию?

Ответы [ 3 ]

0 голосов
/ 29 октября 2018

Просто удалите метаданные, объявляющие родительскую активность, если вы не хотите возвращаться к домашней активности.

<activity android:name="com.myapp.activity.MyActivity" />

или вы можете использовать onNavigationClick панели инструментов, чтобы определить собственное действие при нажатии на кнопку:

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //if you want to go one activity back then put onBackPressed() method
        onBackPressed();
    }
});
0 голосов
/ 30 октября 2018

Сначала замените ваш код следующим.

<activity
        android:name=".MyActivity">
        <intent-filter>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
 </activity>

Во-вторых, добавьте несколько кодов в ваш класс "MyActivity".

1. в методе onCreate () добавьте эту строку.

getActionBar().setDisplayHomeAsUpEnable(true);

2. реализовать onOptionItemSelected (), добавить несколько строк.

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
                if (id == android.R.id.home) {
                     super.onBackPressed();
                }
        return super.onOptionsItemSelected(item);
    }

Надеюсь, что это работает!

0 голосов
/ 29 октября 2018

Заменить на это:

 <activity
        android:name=".MyActivity"

        <intent-filter>
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
 </activity>
...