Включение кнопок после завершения DoInBackground

Я хотел бы включить несколько кнопок из моей основной деятельности, как только вещи из doInBackground() будут завершены! Может кто-нибудь, пожалуйста, дайте мне знать, как это сделать?

Я не могу использовать findViewByID() для того, чтобы сделать его кнопкой видимым из класса AsyncTask , поскольку это не класс activity ! : /

1
nl ja de
@Adil Soomro Прошу прощения, это слишком сложно для меня! Не могли бы вы описать его в соответствии с моим сценарием?
добавлено автор defiant, источник
добавлено автор Adil Soomro, источник
Почему бы вам просто не передать ссылку на свою деятельность в свою AsyncTask?
добавлено автор asgoth, источник

4 ответы

Сделайте это ...

  • Определите метод, который позволяет использовать кнопки.
  • Затем в PostExecute() в AsyncTask вызовите этот метод
5
добавлено
Итак, мне нужно определить метод в MainActivity.java и вызвать его из AsyncTask PostEXecute ()?
добавлено автор defiant, источник
Он не работает, мне нужно передать представление методу, который позволяет кнопкам из MainActivity правильно? Но этот метод вызывается из класса AsyncTask, поэтому как мне это сделать?
добавлено автор defiant, источник
Проверьте это: pastie.org/private/n9zyelt5zsumjl0et464q Это дает мне ошибку, которая заставляет приложение принудительно закрыть , Журнал ошибок: pastie.org/5588296
добавлено автор defiant, источник
Вы уверены, что мне не нужно проходить просмотр. Я использую findViewId, поэтому я думаю, что я делаю это неправильно! : /
добавлено автор defiant, источник
да .. Сделайте кнопки глобальными, чтобы вы могли получить их в любом месте.
добавлено автор Renjith, источник
вам не нужно передавать представление в Asynctask , чтобы просто включить его. Просто вызовите метод в onPostExecute() . в методе включите кнопки. таты все ...
добавлено автор Renjith, источник
попробуйте вызвать только метод без тега activity i.e просто setButtonsVisible
добавлено автор Renjith, источник

ваш класс, который расширяет AsyncTask, вы можете вставлять в него свой контекст при вызове функции execute ().

private class RegisterUser extends AsyncTask {

    private ListActivity activity;
    public RegisterUser(ListActivity activity) {
        this.activity = activity;
    }

    protected void onPostExecute(JSONObject json) {
        activity.editText = (EditText)activity.findViewById(R.id.editText1);
        //or
        activity.enableButton();
    }
}

и вызовите выполнение из Activity следующим образом:

new RegisterUser(this).execute(new String[] {"param"});

or you can define the AsyncTask class inside your Activity class - where you can reach everything. more info Lars Vogel - Android Threads, Handlers and AsyncTask

0
добавлено

Следуйте следующим образом:

[1] Create your AsyncTask :

public class performBackgroundTask extends AsyncTask {
    ProgressDialog Dialog = new ProgressDialog(HotUsers.this);
    protected void onPreExecute() {
        Dialog.setMessage("Loading Hot Users..."); 
        Dialog.show();      
    }

    protected void onPostExecute(Void unused) {
        if(Dialog.isShowing()) 
            Dialog.dismiss();
        set_details_on_screen();

    }

    @Override
    protected Void doInBackground(Void... params) {         
        get_details_from_server();//get data like userid,username,userdesc etc...
        return null;
    }
}

[2] That will call function to proceed for UI changes.

public void set_details_on_screen()
 {
    if(userid > 0 )
        handler_default.sendEmptyMessage(0);
    else
            handler_default.sendEmptyMessage(1);

 }

[3] At last your UI changes will be reflected on screen with this Handler.

private Handler handler_default = new Handler() {
    public void handleMessage(Message msg) {
        switch (msg.what) {
        case 0: {
            textuserid = (TextView) findViewById(R.id.userid);
            textusername = (TextView) findViewById(R.id.username);
            textuserdesc = (TextView) findViewById(R.id.userdesc);

            textuserid.setText(userid);
            textusername.setText(username);
            textuserdesc.setText(userdesc);

            break;
        }
        case 1: {
            Toast.makeText(getApplicationContext(),"Error",Toast.LENGTH_LONG).show();
            break;
        }

       }
    }
};

Благодарю.

0
добавлено

существует один обратный вызов onPostExecution (...) {} класса AsynTask, который использует этот метод для содержимого UI, для включения, отключения кнопки просто напишите этот путь в onPostExcustion (...)

runOnUiThread(new Runnable() {

    @Override
    public void run() {
       //TODO Auto-generated method stub

    }
});

также убедитесь, что этот метод доступен только в классе активности

Спасибо

0
добавлено
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

Android Developers
Android Developers
4 476 участник(ов)

Общаемся на темы, посвященным Android-разработке, SDK, Kotlin, Realm и т.д.

pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

Android Architecture
Android Architecture
2 186 участник(ов)

Русскоязычный чат по архитектуре в андроид приложениях. Подробнее: http://telegra.ph/Android-Architecture-12-24

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

rus-speaking/android
rus-speaking/android
1 705 участник(ов)

Основной чат по Android разработке (вопрос-ответ). ПРАВИЛА: bit.ly/andr-rules. NEWS: bit.ly/AnrdResId ЧАТЫ: Основной: bit.ly/andr-main IDE, сборка, Git, сервисы: bit.ly/andr-tools Оффтоп: bit.ly/andr-offtop Конференции, события: bit.ly/andr-events Вакансии, найм: bit.ly/andr-job Архитектура: bit.ly/andr-patterns Rx: bit.ly/andr-rx Тестирование: bit.ly/andr-test Kotlin: bit.ly/andr-kotlin Хаmarin: bit.ly/andr-xamarin За мат, спам, агрессию, предложения о работе, оффтоп в этом канале - бан на сутки и более ☢☢☢

Android Dev Подкаст
Android Dev Подкаст
1 325 участник(ов)

Комната для обсуждения Android Dev подкаста apptractor.ru/AndroidDev/ Общее обсуждение Android: https://t.me/android_ru Остальные чаты про Android: http://t.me/devChats Наши новости https://t.me/androiddevpodcast_news

Android Guards
Android Guards
602 участник(ов)

Обсуждение любых вопросов касающихся безопасности Android. - Защита системы и приложений - Уязвимости и эксплойты - Вредоносное ПО - Копание в кишках системы и приложений (RE)

Android JOB
Android JOB
466 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению Android (full-time, part-time, remote и разовые подработки)

AndroidDev :: Разработка. It's Android time now!
AndroidDev :: Разработка. It's Android time now!
458 участник(ов)

It's Android time now! Чат разработчиков Android. Вакансии, резюме и информацию о митапах размещать можно. Публикацию скрытой и явной рекламы ваших каналов и сайтов после получения разрешения от @olegushakov

Aandroid Talks!
Aandroid Talks!
212 участник(ов)

Чат об общих вопросах по ОС Android. Чат для разработки под андроид - pro.android: https://t.me/joinchat/AAAAAEKIFKnmRT9cMebb9w

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async

Android Rus
Android Rus
68 участник(ов)