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

Не показывается ProgressDialog - Android

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
13.02.2014, 00:53     Не показывается ProgressDialog #1
Пробую показать диалог пока идёт такое
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
26
27
28
29
30
31
32
if (item.getItemId() == android.R.id.home || item.getItemId() == 4) { 
            dialog = new Dialog(this, android.R.style.Theme_Translucent);
            dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
            dialog.setContentView(R.layout.dialog_progress);
            dialog.setCancelable(false);
            dialog.show();
            readDB();         
            return false;           
      }
...
public void readDB () {
    
    dialog.show();
    
    db = dbHelper.getWritableDatabase();
    
    Cursor c = db.query("mytable", null, null, null, null, null, null);
 
    if (c.moveToFirst()) {
 
      do {        
          myMap.addMarker(new MarkerOptions().position(new LatLng(Double.valueOf(c.getString(c.getColumnIndex("lat"))), 
                                                                  Double.valueOf(c.getString(c.getColumnIndex("lon")))))
                                             .title(c.getString(c.getColumnIndex("adres"))).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
 
      } while (c.moveToNext());
    } else
        showToast( "0 rows");
    c.close();
    dbHelper.close();
    dialog.dismiss();
}
С таким кодом ничего не происходит
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
angryrobot
Командир зеленых роботов
 Аватар для angryrobot
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 563
13.02.2014, 09:40     Не показывается ProgressDialog #2
Цитата Сообщение от Digetix Посмотреть сообщение
С таким кодом ничего не происходит
Вообще ничего ? Ни крэшей ни сообщений об ошибках? Код который должен показать диалог точно вызывается? Этот код случайно не сервисом выполняется ?
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
13.02.2014, 13:52  [ТС]     Не показывается ProgressDialog #3
Цитата Сообщение от angryrobot Посмотреть сообщение
Вообще ничего ? Ни крэшей ни сообщений об ошибках?
Вообще ничего. Как будто его нет. Всё что в readDB() происходит, то есть точки из базы тянутся, наносятся на карту.
Цитата Сообщение от angryrobot Посмотреть сообщение
Код который должен показать диалог точно вызывается?
А как это проверить? dialog.show(); не оно?
Цитата Сообщение от angryrobot Посмотреть сообщение
Этот код случайно не сервисом выполняется ?
Нет

Добавлено через 1 минуту
Я в общем хочу показать что приложение работает, а не зависло, когда точки тянутся из базы. Может предложите другой вариант вместо диалога?
angryrobot
Командир зеленых роботов
 Аватар для angryrobot
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 563
13.02.2014, 14:18     Не показывается ProgressDialog #4
Цитата Сообщение от Digetix Посмотреть сообщение
Может предложите другой вариант вместо диалога?
Могу подсказать только другой диалог
Для этих целей есть ProgressDialog
Показать его можно так:
Java
1
ProgressDialog.show(this, "Ожидание...", "Подождите, операция выполняется").show();
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
13.02.2014, 17:30     Не показывается ProgressDialog #5
А вы из основного потока диалог запускаете? Если нет попробуйте использовать runOnUiThread
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
14.02.2014, 12:24  [ТС]     Не показывается ProgressDialog #6
Цитата Сообщение от KillAndEat Посмотреть сообщение
А вы из основного потока диалог запускаете? Если нет попробуйте использовать runOnUiThread
Из основного. Попробую
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
17.02.2014, 01:24  [ТС]     Не показывается ProgressDialog #7
Цитата Сообщение от angryrobot Посмотреть сообщение
Для этих целей есть ProgressDialog
Ваш пример срабатывает, но как его закрыть?
angryrobot
Командир зеленых роботов
 Аватар для angryrobot
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 563
17.02.2014, 09:47     Не показывается ProgressDialog #8
Цитата Сообщение от Digetix Посмотреть сообщение
Ваш пример срабатывает, но как его закрыть?
Java
1
2
3
4
5
        ProgressDialog dialog = ProgressDialog.show(this, "Ожидание...", "Подождите, операция выполняется");
        //Показать диалог 
        dialog.show();
        //Скрыть диалог
        dialog.dismiss();
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
17.02.2014, 13:37  [ТС]     Не показывается ProgressDialog #9
Странно. Если делаю
Java
1
ProgressDialog.show(this, "Ожидание...", "Подождите, операция выполняется").show();
диалог показывается, но не могу его никак закрыть (например, кнопкой назад).
Если делать с методами show() и dismiss() диалог не показывается
angryrobot
Командир зеленых роботов
 Аватар для angryrobot
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 563
17.02.2014, 13:46     Не показывается ProgressDialog #10
Цитата Сообщение от Digetix Посмотреть сообщение
Странно
Так не надо вызывать методы show() и dismiss() подряд
Он показывается и сразу прячется. Я просто для примера написал их сразу. Я имел в виду что метод show надо вызывать в том месте где нужно показать диалог. А метод dismiss - в том месте когда где нужно ваш диалог спрятать.
Цитата Сообщение от Digetix Посмотреть сообщение
диалог показывается, но не могу его никак закрыть
Чтоб он закрывался при нажатии кнопки "назад" нужно сделать так:
Java
1
dialog.setCancelable(true);
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
17.02.2014, 23:44  [ТС]     Не показывается ProgressDialog #11
Цитата Сообщение от angryrobot Посмотреть сообщение
Так не надо вызывать методы show() и dismiss() подряд
Вот пробую вот так и ничего
Кликните здесь для просмотра всего текста
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public void updateDatabase() {
    
       ProgressDialog dialog = ProgressDialog.show(MainActivity.this, "Ожидание...", "Подождите, операция выполняется");
   
           dialog.show();
       
       sb = new StringBuffer();
        BufferedReader br = null;
        try {
            br = new BufferedReader(new InputStreamReader(getAssets().open("ex.json")));
            String temp;
            while ((temp = br.readLine()) != null)
                sb.append(temp);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                br.close(); // stop reading
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
 
        ContentValues cv = new ContentValues(); 
        db = dbHelper.getWritableDatabase();
        
        String myjsonstring = sb.toString();
        try {
            JSONObject jsonObjMain = new JSONObject(myjsonstring);
            JSONArray jsonArray = jsonObjMain.getJSONArray("results");
            for (int i = 0; i < jsonArray.length(); i++) {
                
                JSONObject c = jsonArray.getJSONObject(i);
                JSONObject location = c.getJSONObject("location");
                JSONObject jsonObj = jsonArray.getJSONObject(i);
 
                cv.put("adres", jsonObj.getString("Adres"));
                cv.put("name", location.getString("latitude"));
                cv.put("email", location.getString("longitude"));
 
                db.insert("mytable", null, cv);
                                
            }
 
        } catch (JSONException e) {
            e.printStackTrace();
        }       
        dbHelper.close();
        dialog.dismiss();
    }
angryrobot
Командир зеленых роботов
 Аватар для angryrobot
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 563
18.02.2014, 13:39     Не показывается ProgressDialog #12
Цитата Сообщение от Digetix Посмотреть сообщение
Вот пробую вот так и ничего
Скорее всего дело в том, что всё слишком быстро заканчивается. Вставьте задержку перед вызовом dialog.dismiss(); в пару секунд чтоб проверить это.
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
18.02.2014, 23:52  [ТС]     Не показывается ProgressDialog #13
Цитата Сообщение от angryrobot Посмотреть сообщение
что всё слишком быстро заканчивается.
Я когда нажимаю на пункт меню, экран "замирает", секунд через 10, всё "отмирает" и приложение и дальше работает
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
19.02.2014, 06:02     Не показывается ProgressDialog #14
Digetix, общение с базой в UI потоке?
Если так, то это нужно исправлять.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2014, 23:39     Не показывается ProgressDialog
Еще ссылки по теме:

Android Как показать ProgressDialog при долгом построении UI?
Android ProgressDialog upload fpt server
Android Webview содержимое показывается только после проведения пальцем по элементу
Android Запрос http + ProgressDialog
SignInButton - при повторном нажатии окно выбора аккаунта не показывается Android

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

Или воспользуйтесь поиском по форуму:
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
19.02.2014, 23:39  [ТС]     Не показывается ProgressDialog #15
Цитата Сообщение от zulkis Посмотреть сообщение
Если так, то это нужно исправлять.
Как?
Yandex
Объявления
19.02.2014, 23:39     Не показывается ProgressDialog
Ответ Создать тему
Опции темы

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