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

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

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

Как в отдельном классе сохранять переменные?
Добрый день! есть класс, в нем сотни переменных, их значения меняются. ...

Как из Thread в отдельном классе получить context приложения?
Например есть AcceptThread extends Thread и MainActivity extends Activity ...

диалоговое окно
необходимо создать что-то вроде alertdialog с двумя кнопками, но так, что-бы...

Диалоговое окно
Как создать диалоговое окно с CheckBoxam'и и кнопками в Studio?

Диалоговое окно
Можно как нибудь вызвать вот это диалоговое окно переключения ?

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

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

Не по теме:

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2016, 19:13
Привет! Вот еще темы с решениями:

Передать значение переменной в диалоговое окно
Здравствуйте. Подскажите, пожалуйста, в чем может быть ошибка: Передаю...

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

Как переопределить диалоговое окно с целью кастомизации?
Здравствуйте! Решил в своем приложении переопределить тему...

Диалоговое окно при выборе пункта меню
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;menu...


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

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

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