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

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

Войти
Регистрация
Восстановить пароль
 
+1
122 / 93 / 9
Регистрация: 24.08.2010
Сообщений: 686
#1

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

09.07.2016, 15:41. Просмотров 180. Ответов 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):

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

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

диалоговое окно - Программирование Android
необходимо создать что-то вроде alertdialog с двумя кнопками, но так, что-бы они &quot;не мешали&quot; дальнейшей работе.. т.е. диалоговое окно...

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

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

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

1
Борис Верещагин
60 / 39 / 12
Регистрация: 14.01.2016
Сообщений: 183
Завершенные тесты: 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
Привет! Вот еще темы с ответами:

Вывод в диалоговое окно текста и переменной - Программирование Android
Нужно вывести в диалоговое окно Текст и значение переменной. Вот, на подобии такого: AlertDialog.Builder builder = new...

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

Как переопределить диалоговое окно с целью кастомизации? - Программирование Android
Здравствуйте! Решил в своем приложении переопределить тему Theme.Holo.Light.NoActionBar. С кнопками получилось, а вот как изменить...

Диалоговое окно при выборе пункта меню - Программирование Android
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;menu xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; ...


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

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

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