Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
+1
327 / 160 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
1

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

09.07.2016, 15:41. Просмотров 311. Ответов 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>
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2016, 15:41
Ответы с готовыми решениями:

Открыть файл через диалоговое окно
Нужно открыть файл, считать от туда данные из необходимой колонки, записать их в массив и закрыть...

Открыть диалоговое окно сохранения файла
Здравствуйте. Подскажите, пожалуйста, можно ли с помощью макроса в Ворде вызвать диалоговое окно...

Как открыть диалоговое окно MVVM
Есть у меня MainWindow и есть ещё одно окно з своим ViewModel классом как открыть второе окно из...

Открыть диалоговое окно выбора папки
Подскажите как сделать диалоговое окно выбора папки с файлами что бы в текстбоксе был виден путь...

Открыть диалоговое окно с помошью меню
создал диалоговое окно мне нужно ,чтобы это окно открывалось через меню как мне это сделать?

1
Борис Верещагин
60 / 39 / 14
Регистрация: 14.01.2016
Сообщений: 202
Завершенные тесты: 4
09.07.2016, 19:13 2
конечно never used. методы не вызываются сами. только переопределенные. а твой класс не наследует DialogFragment.
объяви в классе метод, передавай активити как Context для создания диалога, вызывай этот метод. все

Не по теме:

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

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2016, 19:13

Как открыть диалоговое окно по клику в PictureBox?
Добрый вечер! Есть PictureBox с картинкой. Нужно чтобы при клике на него открывало или в новом...

Код для кноки(открыть диалоговое окно)
Привет. Необходимо прописать код для кнопки, внешней обработки. Кнопка должна выполнять открытие ...

Открыть диалоговое окно при запуске программы
Скажите пожалуйста как сделать так, чтобы при запуске программы первым открывалось диалоговое окно...


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

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

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