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

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

Войти
Регистрация
Восстановить пароль
 
+1
115 / 86 / 8
Регистрация: 24.08.2010
Сообщений: 604
#1

Не получается открыть диалоговое окно, созданное в отдельном классе - Android

09.07.2016, 15:41. Просмотров 126. Ответов 1
Метки нет (Все метки)

Всем привет!
Учусь программировать под андроид, еще почти ничего не понимаю.
Пробую урок отсюда.
Пытаюсь вызвать диалоговое окно по нажатию кнопки "домой".
Закомментированный диалог "покормите кота" успешно работает.
А вот диалог, созданный в классе не открывается.
Просто затемняется экран и всё.
Из примера урока я попытался убрать всё "лишнее", может чего нужное зацепил?
Заметил, что в DialogScreen.java
Не получается открыть диалоговое окно, созданное в отдельном классе
Что я делаю не так?

Главное активити TabooActivity.java:
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
package com.example.doc.taboo;
 
// много import
 
public class TabooActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
 
    @Override
    public void onBackPressed() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this, DialogScreen.IDD_SETTINGS);
        AlertDialog dialog = builder.create();
        dialog.show();
        
        /*
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Важное сообщение!")
                .setMessage("Покормите кота!")
                .setCancelable(false)
                .setNegativeButton("ОК, иду на кухню",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int id) {
                                dialog.cancel();
                            }
                        });
        AlertDialog alert = builder.create();
        alert.show();
        */
    }
}
DialogScreen.java:
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
package com.example.doc.taboo;
 
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.view.View;
 
public class DialogScreen {
 
    public static final int IDD_ABOUT = 1; // Идентификаторы диалоговых окон
    public static final int IDD_SETTINGS = 2;
    public static final int IDD_RATE = 3;
 
    public static AlertDialog getDialog(final Activity TabooActivity, int ID) {
        AlertDialog.Builder builder = new AlertDialog.Builder(TabooActivity);
 
        switch(ID) {
            case IDD_ABOUT:
                return builder.create();
            case IDD_RATE:
                return builder.create();
            case IDD_SETTINGS: // Диалог настроек
                View view = TabooActivity.getLayoutInflater().inflate(R.layout.settings, null); // Получаем layout по его ID
                builder.setView(view);
                builder.setTitle(R.string.dialog_settings_title);
                builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { // Кнопка ОК
                    public void onClick(DialogInterface dialog, int whichButton) {
                       // TabooActivity.doSaveSettings(); // Переход в сохранение настроек MainActivity
                        dialog.dismiss();
                    }
                });
                builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { // Кнопка Отмена
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });
                return builder.create();
            default:
                return null;
        }
    }
}
settings.xml
XML
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
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
 
 
<TextView
    android:id="@+id/textVol"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_marginTop="20dp"
    android:text="@string/dialog_settings_vol"
    android:textAppearance="?android:attr/textAppearanceMedium" />
 
<TextView
    android:id="@+id/textSense"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text="@string/dialog_settings_sense"
    android:textAppearance="?android:attr/textAppearanceMedium" />
 
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ok"
        android:id="@+id/ok"
        android:layout_below="@+id/textVol"
        android:layout_alignRight="@+id/textVol"
        android:layout_alignEnd="@+id/textVol"
        android:layout_marginTop="50dp" />
 
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="cancel"
        android:id="@+id/cancel"
        android:layout_alignTop="@+id/ok"
        android:layout_toRightOf="@+id/ok"
        android:layout_toEndOf="@+id/ok" />
 
 
</RelativeLayout>
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2016, 15:41     Не получается открыть диалоговое окно, созданное в отдельном классе
Посмотрите здесь:

Android Как из Thread в отдельном классе получить context приложения?
Android Из пункта меню в диалоговое окно
Android диалоговое окно
Передать значение переменной в диалоговое окно Android
Android Вылетает созданное приложение
Android Рисование в отдельном Layout
Как открыть окно выбора файла Android
Немогу открыть окно для набора для вызова Android
Android Сервис в отдельном процессе
Как переопределить диалоговое окно с целью кастомизации? Android
Вывод в диалоговое окно текста и переменной Android
Диалоговое окно Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Борис Верещагин
59 / 38 / 12
Регистрация: 14.01.2016
Сообщений: 183
Завершенные тесты: 4
09.07.2016, 19:13     Не получается открыть диалоговое окно, созданное в отдельном классе #2
конечно never used. методы не вызываются сами. только переопределенные. а твой класс не наследует DialogFragment.
объяви в классе метод, передавай активити как Context для создания диалога, вызывай этот метод. все

Не по теме:

"покормите кота"
опять климов...

Yandex
Объявления
09.07.2016, 19:13     Не получается открыть диалоговое окно, созданное в отдельном классе
Ответ Создать тему
Опции темы

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