Форум программистов, компьютерный форум, киберфорум
Наши страницы

Восстановление позиции ListView по возвращении из другого Activity - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Как создать свой блокнот в Android Studio? http://www.cyberforum.ru/android-dev/thread1713248.html
Для приложения хочу реализовать некий блокнот или заметки, где пользователь сможет пользуясь приложением делать заметки и сохранять их. Можете подсказать как реализовать это?
Программирование Android Как сделать так, чтобы мобильное приложение автоматически подстраивалось под размер экрана? В Android Studio мы же под определенную диагональ создаём приложение (один эмулятор).. Как при разработке сделать так, чтобы мобильное приложение корректно отображалось на всех диагоналях? ("4.7"... http://www.cyberforum.ru/android-dev/thread1713150.html
Простейшая работа с интерфейсом Программирование Android
Я уже далеко не начинающий программист, но на Джаве никогда ничего не писал. Решил попробовать что-то интересное под андроид написать. Думал, все так же просто, как в Delphi, но нет! У меня есть...
NoClassDefFoundError неизвестно из-за чего Программирование Android
Всем привет. В общем проблема оч интересного характера. Поддерживаю старый свой проект который делался еще в далеком 2012 году. Его поддерживали до меня еще три человека со слов заказчика которые...
Программирование Android Как сделать такое activity? http://www.cyberforum.ru/android-dev/thread1713059.html
Добрый день. Для начала по прошу держать свои камни при себе да бы они не попали в меня. Так как я начинающий в этом деле человек. Хочу сделать приложение у которого будет такое Activity. Как вы...
Программирование Android Замена текста в одном TextView Подскажите как сделать так, чтобы при нажатии на кнопку (Которая находится справа внизу), при каждом новом нажатии менялся текст в TextView и менялась картинка в ImageView. Если есть возможность,... подробнее

Показать сообщение отдельно
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
18.04.2016, 17:09
gelios_oleg, не за что!
Что-то я не увидел у вас корректного кода.
Если вы вызываете одну активность из другой, можно использовать startActivityForResult, она отрабатывает всегда (сложные случаи лишь для фрагментов и ещё есть проблемный момент для фотографирования).
Открываю первую попавшуюся ссылку (http://developer.alexanderklimov.ru/android/activity.php).
Запуск:
Java
1
2
Intent intent = new Intent(MainActivity.this, ChooseActivity.class);
startActivityForResult(intent, CHOOSE_THIEF);
Константа CHOOSE_THIEF в данном случае определяет для onActivityResult, из какой активности мы вернёмся. Можете обозвать её как угодно и присвоить любое уникальное числовое значение. Например, CHOOSE_THIEF = 100.
Дальше требуется передать в intent все необходимые параметры.
Java
1
2
3
intent.putString("что-то", value1);
intent.putBoolean("признак", true);
intent.putLong("позиция", offset);
Теперь пропишите в ChooseActivity (вместо этого названия - ваше) обработку параметров, какие-то действия и возврат.
Java
1
2
3
4
5
Intent intent = getIntent();
String user = intent.getStringExtra("что-то");
boolean b = intent.getBooleanExtra("признак");
long offset = intent.getLongExtra("позиция");
// Дальнейшая работа.
Когда задумаете возвращаться, надо прописать следующее. Во многих руководствах предлагается вернуться по кнопке, но это ахинея, потому что пользователь может вернуться по кнопке "Назад". Надо переопределить событие onBackPressed().
Java
1
2
3
4
5
6
7
 @Override
    public void onBackPressed() {
            Intent intent = new Intent();
            intent.putExtra("позиция", offset);
            setResult(RESULT_OK, intent);
        super.onBackPressed();
    }
Теперь надо словить событие onActivityResult в вызывающей активности.
Java
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
 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);
 
        switch (requestCode)
        {
            case CHOOSE_THIEF:
                if (resultCode == RESULT_OK && data != null) {
                    if (data.hasExtra("позиция")) {
                       long offset = data.getLongExtra("позиция", -1);
                       // Тут прокрутите к нужной позиции.
                    }
                }
                break;
 
            case DEFECT_PHOTO_TAKE_REQUEST_CODE:
                if (resultCode == RESULT_OK) {
                }
                break;
 
            default:
                break;
        }
    }
Код не проверял, он может не работать, делайте сами.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru