Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
1

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

13.02.2014, 00:53. Просмотров 1413. Ответов 14
Метки нет (Все метки)

Пробую показать диалог пока идёт такое
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();
}
С таким кодом ничего не происходит
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2014, 00:53
Ответы с готовыми решениями:

ProgressDialog
public class Main_Activity extends Activity { private ProgressDialog pd; ...

Запрос http + ProgressDialog
подскажите пожалуйста как реализовать запрос к php серверу по протоколу...

Async_Tasc появление ProgressDialog
При запуске Async Tasc в onPreExecute() создаётся и должен появится...

ProgressDialog upload fpt server
Ребята помогите разобраться private class uploadFileTask extends...

Progressdialog при выполнении asynctask
Здравствуйте! Есть asynctask который отправляет запрос и после парсит...

14
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
13.02.2014, 09:40 2
Цитата Сообщение от Digetix Посмотреть сообщение
С таким кодом ничего не происходит
Вообще ничего ? Ни крэшей ни сообщений об ошибках? Код который должен показать диалог точно вызывается? Этот код случайно не сервисом выполняется ?
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
13.02.2014, 13:52  [ТС] 3
Цитата Сообщение от angryrobot Посмотреть сообщение
Вообще ничего ? Ни крэшей ни сообщений об ошибках?
Вообще ничего. Как будто его нет. Всё что в readDB() происходит, то есть точки из базы тянутся, наносятся на карту.
Цитата Сообщение от angryrobot Посмотреть сообщение
Код который должен показать диалог точно вызывается?
А как это проверить? dialog.show(); не оно?
Цитата Сообщение от angryrobot Посмотреть сообщение
Этот код случайно не сервисом выполняется ?
Нет

Добавлено через 1 минуту
Я в общем хочу показать что приложение работает, а не зависло, когда точки тянутся из базы. Может предложите другой вариант вместо диалога?
0
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
13.02.2014, 14:18 4
Цитата Сообщение от Digetix Посмотреть сообщение
Может предложите другой вариант вместо диалога?
Могу подсказать только другой диалог
Для этих целей есть ProgressDialog
Показать его можно так:
Java
1
ProgressDialog.show(this, "Ожидание...", "Подождите, операция выполняется").show();
0
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
13.02.2014, 17:30 5
А вы из основного потока диалог запускаете? Если нет попробуйте использовать runOnUiThread
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
14.02.2014, 12:24  [ТС] 6
Цитата Сообщение от KillAndEat Посмотреть сообщение
А вы из основного потока диалог запускаете? Если нет попробуйте использовать runOnUiThread
Из основного. Попробую
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
17.02.2014, 01:24  [ТС] 7
Цитата Сообщение от angryrobot Посмотреть сообщение
Для этих целей есть ProgressDialog
Ваш пример срабатывает, но как его закрыть?
0
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
17.02.2014, 09:47 8
Цитата Сообщение от Digetix Посмотреть сообщение
Ваш пример срабатывает, но как его закрыть?
Java
1
2
3
4
5
        ProgressDialog dialog = ProgressDialog.show(this, "Ожидание...", "Подождите, операция выполняется");
        //Показать диалог 
        dialog.show();
        //Скрыть диалог
        dialog.dismiss();
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
17.02.2014, 13:37  [ТС] 9
Странно. Если делаю
Java
1
ProgressDialog.show(this, "Ожидание...", "Подождите, операция выполняется").show();
диалог показывается, но не могу его никак закрыть (например, кнопкой назад).
Если делать с методами show() и dismiss() диалог не показывается
0
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
17.02.2014, 13:46 10
Цитата Сообщение от Digetix Посмотреть сообщение
Странно
Так не надо вызывать методы show() и dismiss() подряд
Он показывается и сразу прячется. Я просто для примера написал их сразу. Я имел в виду что метод show надо вызывать в том месте где нужно показать диалог. А метод dismiss - в том месте когда где нужно ваш диалог спрятать.
Цитата Сообщение от Digetix Посмотреть сообщение
диалог показывается, но не могу его никак закрыть
Чтоб он закрывался при нажатии кнопки "назад" нужно сделать так:
Java
1
dialog.setCancelable(true);
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
17.02.2014, 23:44  [ТС] 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();
    }
0
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
18.02.2014, 13:39 12
Цитата Сообщение от Digetix Посмотреть сообщение
Вот пробую вот так и ничего
Скорее всего дело в том, что всё слишком быстро заканчивается. Вставьте задержку перед вызовом dialog.dismiss(); в пару секунд чтоб проверить это.
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
18.02.2014, 23:52  [ТС] 13
Цитата Сообщение от angryrobot Посмотреть сообщение
что всё слишком быстро заканчивается.
Я когда нажимаю на пункт меню, экран "замирает", секунд через 10, всё "отмирает" и приложение и дальше работает
0
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
19.02.2014, 06:02 14
Digetix, общение с базой в UI потоке?
Если так, то это нужно исправлять.
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
19.02.2014, 23:39  [ТС] 15
Цитата Сообщение от zulkis Посмотреть сообщение
Если так, то это нужно исправлять.
Как?
0
19.02.2014, 23:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2014, 23:39

Ожидание подключения к серверу (ProgressDialog)
Здравствуйте! Мне нужно, чтобы при переходе на MainActivity вылазил...

ProgressDialog во время динамического создания View
На layot динамически создается большое кол-во элементов. Хочется в это время...

Последовательное выполнение Async Tasks и progressdialog
как используя asyncTask.execute(); asyncTask.get(); вывести progressdialog?


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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