Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
#1

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

18.05.2013, 00:25. Просмотров 1051. Ответов 19
Метки нет (Все метки)

Хочу при запуске проверить есть ли на устройстве Сервисы Google Play
Кликните здесь для просмотра всего текста
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
51
52
53
54
55
public class MainActivity extends FragmentActivity {
          .....
 
         @Override
     public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);     
        setContentView(R.layout.main);
        
             if (checkPlayServices()) {                      // проверка на Сервисы  
                    myFragmentManager = getSupportFragmentManager();
                    mySupportMapFragment  = (SupportMapFragment)myFragmentManager.findFragmentById(R.id.map);
                    myMap = mySupportMapFragment.getMap();
                    myMap.setMyLocationEnabled(true); 
 
                    } else {                                            // если Сервисов нет 
                     showErrorDialog();                             // показываем диалог
                  }
         }
 
          private boolean checkPlayServices() {                        // сама проверка
 
          int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
          if (status != ConnectionResult.SUCCESS)  {
 
            if (GooglePlayServicesUtil.isUserRecoverableError(status)) {
                
             } 
            showErrorDialog();
          }
          return true;
        } 
 
        private void showErrorDialog() {         
         AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
         alertDialog.setCancelable(false);
         alertDialog.setTitle(getResources().getString(R.string.google_service_no));
         alertDialog.setMessage(getResources().getString(R.string.google_service_need));
         alertDialog.setIcon(android.R.drawable.ic_dialog_info);
         alertDialog.setPositiveButton("Google Play", new DialogInterface.OnClickListener() {
              public void onClick(DialogInterface dialog,int which) {
                  final String appName = "com.google.android.gms";
                  try {
                      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id="+appName)));
                  } catch (android.content.ActivityNotFoundException anfe) {
                  }
              }
          });
         alertDialog.setNegativeButton(getResources().getString(R.string.exit), new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int which) {
                    finish();
                }
           });  
          alertDialog.show();
        }
}


Если Сервисы в телефоне есть, всё работает, если их нет, приложение вылетает (на реальном устройстве). Логи показать не могу так как на эмуляторе Сервисов нет и приложение на эмуляторе крашиться в строке
Java
1
myMap.setMyLocationEnabled(true);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2013, 00:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не показывается AlertDialog (Программирование Android):

AlertDialog - Программирование Android
ЗДравствуйте! Имеется простая игра. Когда ХП игрока == 0, я останавливаю игру и хочу показать AlerDialog. Рисуется все на канвас. Вот...

Не работает AlertDialog - Программирование Android
Почему в данном случае не работает AlertDialog? public class MainActivity : Activity { int count = 1; ...

Spinner в AlertDialog - Программирование Android
Как Spinner в AlertDialog сделать? AlertDialog вызываю через нажатие fab. AlertDialog.Builder builder = new...

AlertDialog и RadioGroup - Программирование Android
Всем привет. Создаю программу, в которой в открывшемся диалоговом окне происходит настройка сортировки списка. И там есть radiogroup,...

Custom AlertDialog - Программирование Android
Помогите люди добрые, что то никак не нагуглю... А желательно кодом;)

Закрытие AlertDialog - Программирование Android
Здравствуйте. Такой вопрос. Допустим я вызвал диалог и после этого перевел приложение в паузу, то после очередного обращения к данному...

19
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
19.05.2013, 01:25 #16
http://developer.android.com/referen...l#getMap%28%29

Cкорее всего у тебя возникает NPE причины по ссылке выше.

Java
1
2
3
4
5
if (myMap == null) {
 // Google Play services is not available.
} else {
   myMap.setMyLocationEnabled(true); 
}
п.с. Способ определения какой-то странный
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
23.05.2013, 11:25  [ТС] #17
Цитата Сообщение от c4sp3r Посмотреть сообщение
п.с. Способ определения какой-то странный
Способ определения чего?
0
Gruzer
8 / 8 / 0
Регистрация: 17.05.2012
Сообщений: 30
28.05.2013, 03:02 #18
private boolean checkPlayServices
Ваша Функция Постоянно возврашает true
неважно есть ли или нету сервисов на телефоне
поетому и падает
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
29.05.2013, 00:34  [ТС] #19
Цитата Сообщение от Gruzer Посмотреть сообщение
Ваша Функция Постоянно возврашает true
неважно есть ли или нету сервисов на телефоне
поетому и падает
По логам падает из-за того, что myMap null
0
Gruzer
8 / 8 / 0
Регистрация: 17.05.2012
Сообщений: 30
01.06.2013, 20:40 #20
Диалог не тормозит функцию
после вызова диалога функция продолжает работать
вследствии чего и возрашается true

поетому и написал что функция постоянно возврашает true
есть или нету сервисов

можеш проверит
постав логи в функцию и посматри как они срабатывают и в какои очередности


вот самыи простои вариант

Java
1
2
3
4
5
6
7
8
9
10
 private boolean checkPlayServices() {                        // сама проверка
 
          int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
          if (status == ConnectionResult.SUCCESS)  {
                     return true;
           }
           
            showErrorDialog();
            return false;
        }
Добавлено через 10 минут
showErrorDialog(); забыл убрать

Java
1
2
3
4
5
6
7
8
private boolean checkPlayServices() {                        // сама проверка
 
          int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
          if (status == ConnectionResult.SUCCESS)  {
                     return true;
           }
            return false;
        }
0
01.06.2013, 20:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2013, 20:40
Привет! Вот еще темы с ответами:

TextView а AlertDialog - Программирование Android
Здравствуйте! Вот столкнулся с такой проблемой, не могу Textview вывести в AlertDialog. Помогите пожалуйста!

Потоки и AlertDialog - Программирование Android
Помогите, пожалуйста, бьюсь уже несколько дней. Создаю файловый менеджер. Это моя первая программа под Android, поэтому не всегда догоняю. ...

AlertDialog Error - Программирование Android
Всем доброго времени суток! Изучал изготовление своего AlertDialog по учебнику и на одном из сайтов, но увы столкнулся с проблемой, после...

AlertDialog вылезает за разметку - Программирование Android
Я создаю кастомный AlertDialog и проблема в том, что когда я подключаю к диалогу разметку и отображаю его. Концы этого AlertDialog...


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

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

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