powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / actionBar.setDisplayHomeAsUpEnabled(true) и несколько activity
15 сообщений из 15, страница 1 из 1
actionBar.setDisplayHomeAsUpEnabled(true) и несколько activity
    #39183541
sanringo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Имеются 3 активити: MainGroupListActivity -> SubGroupListActivity -> ArticleDetailActivity. В SubGroupListActivity, ArticleDetailActivity есть actionBar с кнопкой возврата. При нажатии её в SubGroupListActivity осуществляется переход в MainGroupListActivity, как и должно быть. Но при нажатии в ArticleDetailActivity осуществляется переход опять в MainGroupListActivity, а нужно чтобы в SubGroupListActivity. Как это реализовать?
Вот файл манифеста
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<activity
            android:name=".MainGroupListActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".SubGroupListActivity"
            android:label="@string/title_activity_sub_groups"
            android:parentActivityName=".MainGroupListActivity">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainGroupListActivity" />
        </activity>
        <activity
            android:name=".ArticleDetailActivity"
            android:label="@string/title_article_detail"
            android:parentActivityName=".SubGroupListActivity">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".SubGroupListActivity" />
        </activity>
...
Рейтинг: 0 / 0
actionBar.setDisplayHomeAsUpEnabled(true) и несколько activity
    #39183615
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При нажатии обычной кнопки back тоже не соблюдается стек?
...
Рейтинг: 0 / 0
actionBar.setDisplayHomeAsUpEnabled(true) и несколько activity
    #39183787
sanringo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для обычной кнопки стек соблюдается
...
Рейтинг: 0 / 0
actionBar.setDisplayHomeAsUpEnabled(true) и несколько activity
    #39183809
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой класс у активностей?
...
Рейтинг: 0 / 0
actionBar.setDisplayHomeAsUpEnabled(true) и несколько activity
    #39183818
sanringo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
extends AppCompatActivity
...
Рейтинг: 0 / 0
actionBar.setDisplayHomeAsUpEnabled(true) и несколько activity
    #39183831
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanringoextends AppCompatActivity
Попробуй явно прописать родителя в манифесте
Код: xml
1.
2.
3.
<meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.ParentActivity" />
...
Рейтинг: 0 / 0
actionBar.setDisplayHomeAsUpEnabled(true) и несколько activity
    #39183838
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmansanringoextends AppCompatActivity
Попробуй явно прописать родителя в манифесте
Код: xml
1.
2.
3.
<meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.ParentActivity" />


у него уже вроде прописано. имхо затык в чем-то другом. либо про кусок кода забыл, который явно первую активность вызывает, либо еще чего в том же духе
...
Рейтинг: 0 / 0
actionBar.setDisplayHomeAsUpEnabled(true) и несколько activity
    #39183839
sanringo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так и сделал (см. пост №1). Не помогает
...
Рейтинг: 0 / 0
actionBar.setDisplayHomeAsUpEnabled(true) и несколько activity
    #39183850
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.
лень проверять, но разве не нужно в onOptionsItemSelected android.R.id.home обрабатывать явно? setDisplayHomeAsUpEnabled(true) вроде только стрелочку показывает
...
Рейтинг: 0 / 0
actionBar.setDisplayHomeAsUpEnabled(true) и несколько activity
    #39184812
sanringo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался. Действительно, как говорил chpasha, у меня был метод
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == android.R.id.home) {
            navigateUpTo(new Intent(this, MainGroupListActivity.class));
            return true;
        }
        return super.onOptionsItemSelected(item);
    }


Переделал на
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == android.R.id.home) {
            navigateUpTo(new Intent(this, SubGroupListActivity.class));
            return true;
        }
        return super.onOptionsItemSelected(item);
    }


Но столкнулся с новой проблемой NullPointException. Т.к. при MainGroupListActivity -> SubGroupListActivity передаётся объект Group, при ArticleDetailActivity -> SubGroupListActivity ничего не передаётся. Как мне осуществить навигацию ArticleDetailActivity -> SubGroupListActivity, но чтобы при этом SubGroupListActivity помнил своё состояние? С обычной кнопкой возврата это получается.
Похожий вопрос http://stackoverflow.com/questions/21057607/up-navigation-and-saved-instance-data , но там ответа нет
...
Рейтинг: 0 / 0
actionBar.setDisplayHomeAsUpEnabled(true) и несколько activity
    #39184833
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanringo
Код: java
1.
navigateUpTo(new Intent(this, SubGroupListActivity.class));


Зачем на new перекидывать? Если просто дернуть finish, например?
...
Рейтинг: 0 / 0
actionBar.setDisplayHomeAsUpEnabled(true) и несколько activity
    #39184969
sanringo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,
Спасибо, с finish получилось.
Также получилось и с super.onBackPressed();

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == android.R.id.home) {
            //navigateUpTo(new Intent(this, SubGroupListActivity.class));
            //finish();
            super.onBackPressed();
            return true;
        }
        return super.onOptionsItemSelected(item);
    }


Думаю этот вариант больше подходит
...
Рейтинг: 0 / 0
actionBar.setDisplayHomeAsUpEnabled(true) и несколько activity
    #39185000
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanringoДумаю этот вариант больше подходит
имхо весьма спорное утверждение. finish явно указывает, что произойдет дальше. а поведение onBackPressed менее четко обозначено - для него завершение активности - это всего лишь действие по-умолчанию, которое может быть переопределено. послезавтра ты поменяешь extends Activity на extends MyActivity в которой onBackPressed будет делать что-то другое и твой код начнет работать иначе. Я немного сгущаю краски, но тем не менее.
...
Рейтинг: 0 / 0
actionBar.setDisplayHomeAsUpEnabled(true) и несколько activity
    #39185023
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanringoТакже получилось и с super.onBackPressed();
Именно в данном случае правильно использовать fininsh.
...
Рейтинг: 0 / 0
actionBar.setDisplayHomeAsUpEnabled(true) и несколько activity
    #39185058
sanringo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за помощь. Вопрос закрыт.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / actionBar.setDisplayHomeAsUpEnabled(true) и несколько activity
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]