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

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

Войти
Регистрация
Восстановить пароль
 
NapalmRain
38 / 38 / 3
Регистрация: 18.05.2010
Сообщений: 631
#1

Работа с VIEW объектами из TaskAsync вынесенного в отдельный файл - Программирование Android

05.06.2014, 23:09. Просмотров 647. Ответов 4
Метки нет (Все метки)

Доброго всем времени суток!
Есть класс для работы с API сайта.
он наследуется от AsyncTask, что бы отправлять сетевые запросы в отдельном потоке.
Когда этот класс прописан внутри текущей Activity проблем нет, но я захотел вынести его в отдельный файл, что бы не писать один и тот же класс в каждой активити, где нужно использовать API, но тут столкнулся с проблемой, что даже в onPre... и onPostExecute я не могу обращаться к view объектам, что и понятно, их же в этом классе нет и быть не может, но вот как ему передать туда ссылки на эти объекты, понять не могу.

Для примера в тестовом приложении взял код из урока
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class siteapi extends AsyncTask<String, Void, Void> {
        protected void onPreExecute() {
              super.onPreExecute();
              Toast.makeText(MainActivity.this, "Выполняется подключение", Toast.LENGTH_LONG).show();
              progBar.setVisibility(0);
            }
        @Override
        protected Void doInBackground(String... funcs) {
            try {
                TimeUnit.SECONDS.sleep(2);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return null;
        }
 
        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            progBar.setVisibility(4);
            Toast.makeText(MainActivity.this, "Выполнено", Toast.LENGTH_LONG).show();
        }
Если создать этот класс в отдельном файле, то в строках
Java
1
2
Toast.makeText(MainActivity.this, "Выполняется подключение", Toast.LENGTH_LONG).show();
progBar.setVisibility(0);
Буду получать ошибку.

Буду очень признателен, если мне пояснят, как решить данную проблему.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2014, 23:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с VIEW объектами из TaskAsync вынесенного в отдельный файл (Программирование Android):

Выделить функцию из View в отдельный файл и затем сослаться на неё из другого скрипта - JavaScript
Проблема следующая: есть кусок html разметки, отвечающий за определённый фрагмент страницы. На него может ссылаться много разных View. ...

Работа с файлами C++. Считывание и выписывание в отдельный файл - C++
Вычисления и вывод в файл с именем results.txt количества вхождений и координат (номер предложения, номер буквосочетание) в файле...

Вывести в отдельный файл, кто и когда вносил изменения в файл xls - VBA
уважаемые, кто подскажет или направит в нужном направлении Суть задачи. Вести в отдельный файлик кто и когда вносил изменения у вайл xls....

Создать файл каталог книг, по году издания занести в отдельный файл данные - Turbo Pascal
создайте файл каталог книг по заданному значению года издания занесите в отдельный файл сведения о произведениях изданных в указанном году

Работа с объектами - Delphi
Доброго времени суток, уважаемые форумчане! Интересует такой вопрос: обязательно ли удалять объекты, созданные &quot;ручками&quot; при помощи...

Работа с объектами - Delphi
Добрый вечер, у меня есть очень много обьектов на экране, нужно проверять, если нажата кнопка мыши на одном из обьектов, то менять его цвет...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Pablito
2495 / 1940 / 605
Регистрация: 12.05.2014
Сообщений: 6,804
Завершенные тесты: 1
06.06.2014, 11:20 #2
можно в тот класс, который наследуется от AsyncTask, в конструктор, передавать все нужные ссылки на объекты
0
shulyakyarik
11 / 11 / 3
Регистрация: 28.03.2014
Сообщений: 156
06.06.2014, 15:39 #3
Паблито, это как создать объект класса? В классе AsyncTask я создал объект класса MainActivity, но при вызове метода setText(string) в методе onPostExecute вылезла ошибка
1
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
06.06.2014, 15:48 #4
Цитата Сообщение от NapalmRain Посмотреть сообщение
Toast.makeText(MainActivity.this, "Выполняется подключение", Toast.LENGTH_LONG).show();
Попробуйте в этой строчке MainActivity.this заменить на getApplicationContext()

Java
1
Toast.makeText(getApplicationContext(), "Выполняется подключение", Toast.LENGTH_LONG).show();
1
NapalmRain
38 / 38 / 3
Регистрация: 18.05.2010
Сообщений: 631
06.06.2014, 18:24  [ТС] #5
Благодарю за советы, решил вопрос другим путём: переопределением методов pre b postExecute в activity в месте создания экземпляра класса.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2014, 18:24
Привет! Вот еще темы с ответами:

Работа с объектами в С++ - C++
С текстового файла считывается информация о студентах (фамилия, когда и на какой срок выдали книгу из библиотеки). Пользователь вводит...

Работа с объектами - JavaScript
Помогите решить проблему. Функция a() должна создать новый объект такой же структуры как аргумент и в этом новом объекте приплюсовать 2. ...

Работа с объектами - jQuery
Разъясните пожалуйста, создаётся слайдер в script-файле $(document).ready( function(){ $('.header_slider2').bxSlider({ ...

Работа с объектами - C++
Здравствуйте, делаю курсовую по работе с датами, их вычитанием и сложением. Вообще в начале у меня идет процесс инициализации даты,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.06.2014, 18:24
Ответ Создать тему
Опции темы

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