Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Bean87
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 5
#1

Listener в OnPostExecute ? - Android

25.02.2016, 19:37. Просмотров 159. Ответов 2
Метки нет (Все метки)

Дратуте! Подскажите, пожалуйста, по такой ситуации: AsyncTask парсит данные и возвращает их в onPostExecute(). В ActionBar есть кнопка. Как по нажатию кнопки в onOptionsItemSelected() получить эти данные, чтобы стартануть другую активити?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2016, 19:37     Listener в OnPostExecute ?
Посмотрите здесь:

Oracle Listener зависает
Как отменить Checked \ Selected CheckBox из самого события на Selected в Listener Android
Oracle Status : Failure -Test failed: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given
Android Listener перемещения объекта
Android Listener и RSS
RecyclerView создание Item Click Listener Android
EditText.Listener внутри ListView Android
Android Работают ли Listener в абстрактной родительской Activity?
Android AsyncTask doInbackground и onPostExecute выполняются параллельно ?
Listener SQLite Android
Android Статический listener
Android Fragment, Splash-activity, Jsoup onPostExecute

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DemD10
58 / 47 / 12
Регистрация: 03.09.2013
Сообщений: 426
25.02.2016, 20:35     Listener в OnPostExecute ? #2
Что значит как? Берете и получаете, недавно один человек на форуме подробно расписывал про создание интрерфейса в AsyncTask и на мой взгляд прекрасно это сделал.

AsyncTask тормозит

В теме немного пролистайте. Паблито расписал.
Bean87
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 5
27.02.2016, 04:23  [ТС]     Listener в OnPostExecute ? #3
Спасибо, почитал, интересный вариант с колбаками. Сделал чуть проще:

1. Переменные в MainActivity:

Java
1
2
public double returnedLatitude;
    public double returnedLongitude;
2. В onPostExecute сторим результаты работы SyncTask в эти переменные:

Java
1
2
3
4
5
6
7
 protected void onPostExecute(Wrapper wrapper) {
 
            MainActivity mainActivity = (MainActivity) context;
            mainActivity.returnedLatitude = wrapper.getLatitude();
            mainActivity.returnedLongitude = wrapper.getLongitude();
 
        }
3. В onOptionsItemSelected используем их:

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
public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
 
        if (id == R.id.launch_maps){
 
            Intent intent = new Intent(this, MapsActivity.class);
 
            //правда, проверку нужно сделать, т.к. юзер может нажать на кнопку до того, как AsyncTask закончит работу.
 
            if (returnedLatitude == 0 && returnedLongitude == 0){
                Toast.makeText(getApplicationContext(), "Please wait a bit and try again", Toast.LENGTH_LONG).show();
            } else {
                Bundle extras = new Bundle();
                extras.putDouble("latitude", returnedLatitude);
                extras.putDouble("longitude", returnedLongitude);
                intent.putExtras(extras);
 
                startActivity(intent);
            }
 
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
4. Профит
Yandex
Объявления
27.02.2016, 04:23     Listener в OnPostExecute ?
Ответ Создать тему
Опции темы

Текущее время: 01:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru