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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
#1

Не показывается ProgressDialog - Программирование Android

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

ProgressDialog - Программирование Android
public class Main_Activity extends Activity { private ProgressDialog pd; private class LogIn extends AsyncTask<Void,...

Async_Tasc появление ProgressDialog - Программирование Android
При запуске Async Tasc в onPreExecute() создаётся и должен появится ProgressDialog. но он не появляется сразу. Вызываю AsyncTasc ...

Запрос http + ProgressDialog - Программирование Android
подскажите пожалуйста как реализовать запрос к php серверу по протоколу http/https?, плюс, чтоб на время запроса и обработки ответа...

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

Progressdialog при выполнении asynctask - Программирование Android
Здравствуйте! Есть asynctask который отправляет запрос и после парсит страницу. Хотел добавить Progressdialog который начинал бы работать...

ProgressDialog upload fpt server - Программирование Android
Ребята помогите разобраться private class uploadFileTask extends AsyncTask<Void, Integer, Long> { private...

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

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

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

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

Как показать ProgressDialog при долгом построении UI? - Программирование Android
Есть две активити. При нажатии кнопки в первой активити, происходит переход ко второй. Во второй активити в onCreate строится интерфейс. ...

Не показывается AlertDialog - Программирование Android
Хочу при запуске проверить есть ли на устройстве Сервисы Google Play public class MainActivity extends FragmentActivity { ...


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

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

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