Диалоговое окно «Прогресс Android» При обновлении GUI

Таким образом, я был на этом в течение 2 дней, и все же я не могу заставить его работать. Я пробовал решения по внедрению runnable, asynctask, но он просто никогда не работает с моим кодом. Возможно, я реализовал это неправильно ...

Во всяком случае, у меня есть следующий код. Когда я создаю эту операцию, я хочу показать progressdialog с текстом «Загрузка». Проблема в том, что вы не можете обновлять GUI-элементы из другого потока. Вот где я застрял. Надеюсь, ты поможешь мне!

PS: Причина, по которой мне нужен ProgressDialog, - это то, что строка

ArrayList genres = MysqlHandler.getAllGenres();

Может потребоваться некоторое время для загрузки. Также у меня есть некоторые другие действия, которые нужно делать одинаково, и там может потребоваться до 5 секунд для загрузки.

public class GenreActivity extends Activity implements OnClickListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_genre);

    try {
        ArrayList genres = MysqlHandler.getAllGenres();

        LinearLayout layout = (LinearLayout) findViewById(R.id.AllGenreLayout);

        for(int i = 0; i < genres.size(); i++)
        {
            Button myButton = new Button(this);
            myButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.yellow_button));
            myButton.setTextAppearance(this, R.style.ButtonText);
            myButton.setText(genres.get(i));
            myButton.setOnClickListener(this);
            layout.addView(myButton);
        }
    } catch (ClientProtocolException e) {
       //TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
       //TODO Auto-generated catch block
        e.printStackTrace();
    }
}
0
nl ja de
отправьте свой код asyncTask и где будет вызываться asyncTaskObj.execute ().
добавлено автор Raj, источник
Я удалил его, потому что было не очень хорошо выполнять задания для всех моих классов. Поскольку progressdialog должен отображаться только тогда, когда я запускаю код внутри try-catch. Но если вы считаете, что это необходимо, я могу снова сделать asyncTask и опубликую его
добавлено автор Jeroen van Veghel, источник

2 ответы

/// try :)

progressgialog.post(new Runnable(){
run ()
{
progressgialog.setMessage("asd");
}
})

//// catch :)

activity.runOnUiThread(new Runnable()
{
progressgialog.setMessage("asd");
});
0
добавлено

Я нашел работу и подумал, что поделюсь ею. Поскольку я делал еще один поток внутри метода oncreate, я решил, что смогу также создать поток, когда начну свое намерение. Поэтому вместо этого кода:

Intent inte = new Intent(FirstSearchActivity.this, GenreActivity.class);
startActivity(inte);

Теперь я делаю:

//start the progress dialog
progressDialog = ProgressDialog.show(FirstSearchActivity.this, "", "Loading...");
new Thread() 
{
public void run() 
    {
        Intent inte = new Intent(FirstSearchActivity.this, GenreActivity.class);
        startActivity(inte);
        progressDialog.dismiss();
    }
}.start();
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 и т.д.

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

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

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

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