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

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

Войти
Регистрация
Восстановить пароль
 
AgentZ
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 130
#1

Всплывающее активити - не работает код - Программирование Android

18.07.2016, 14:40. Просмотров 262. Ответов 12
Метки нет (Все метки)

Вызываю всплывающее окно, содержимое которого у меня в файле dialog.xml:

Java
1
2
3
Dialog dial = new Dialog(Screen.this);
dial.setContentView(R.layout.dialog);
dial.show();
Окно появляется, все хорошо на первый взгляд. Но содержимое окна попросту ни на что не реагируют. В манифесте указал его, как Активити:



XML
1
2
3
4
5
<activity
            android:name=".Dialog"
            android:theme="@style/Theme.AppCompat.Dialog">
 
</activity>
Класс Dialog:

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
56
57
58
59
public class Dialog extends Activity {
    
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.dialog);
 
        final ImageView ch1 = (ImageView) findViewById(R.id.chest1);
        final ImageView ch2 = (ImageView) findViewById(R.id.chest2);
        final ImageView ch3 = (ImageView) findViewById(R.id.chest3);
 
 
        Hero s  = new Hero(this);
        s.createImagesArrays();
        Toast.makeText(Dialog.this, R.string.load_complete, Toast.LENGTH_SHORT).show();
 
 
        View.OnClickListener open = new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                switch (view.getId()) {
                    case R.id.chest1:
                        ch1.setImageResource(R.drawable.chestopen1);
                        ch2.setImageResource(R.drawable.chest1);
                        ch3.setImageResource(R.drawable.chest1);
                            
                        /// Сообщение пользователю, отображение нужной картинки..
 
                        break;
                    case R.id.chest2:
                        ch2.setImageResource(R.drawable.chestopen1);
                        ch1.setImageResource(R.drawable.chest1);
                        ch3.setImageResource(R.drawable.chest1);
 
                        /// Сообщение пользователю, отображение нужной картинки..
 
 
                        break;
                    case R.id.chest3:
                        ch3.setImageResource(R.drawable.chestopen1);
                        ch2.setImageResource(R.drawable.chest1);
                        ch1.setImageResource(R.drawable.chest1);
 
                        /// Сообщение пользователю, отображение нужной картинки..
 
                        break;
                }
            }
        };
 
 
        ch1.setOnClickListener(open);
        ch2.setOnClickListener(open);
        ch3.setOnClickListener(open);
 
 
    }
 
}
То есть, я в файле Dialog.java делал так, как я это делаю для всех других обычных активити. Возможно, именно в этом проблема и надо делать не так? Искал много, долго. Но все, что находил - не то... Мне нужно именно, чтоб всплывало окно, на котором будут несколько изображений и которые бы реагировали на нажатия / меняли изображения по нажатию и т.д.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2016, 14:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Всплывающее активити - не работает код (Программирование Android):

Не работает If и запуск нового активити - Программирование Android
Есть загрузка данных с базы MySql в переменные, есть 2 EditText в которые вводятся текстовые данные, нужно проверить данные с Едитов и...

На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити - Программирование Android
Сделал меню в виде ListView. При клике на меню запускаются активити. На эмуляторе работает, на телефоне моем LG все работает. На телефоне...

Как вызвать метод в активити классе из обычного не активити класса? - Программирование Android
Есть активити в котором вводятся логин и пароль. При нажатии кнопки &quot;войти&quot; в отдельном классе &quot;сокетсервер&quot;(+в отдельном потоке)...

Код для двух кнопок в одном активити - Программирование Android
Здравствуйте, я создал кнопку(в активити1), при нажатии на которую происходит переход на активити2. Но тут возник вопрос, как создать...

Вызов новой активити не из класса активити - Программирование Android
Есть 4 класса: 1) WelcomeActivity; 2) MainActivity; 3) PopUpActivity; 4) Client. Программа работает с сервером и получает...

Изменение параметров активити из другого активити - Программирование Android
Как сделать так чтобы из первого активити поменять final ImageView img=(ImageView)findViewById(R.id.image1); ...

12
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,066
Завершенные тесты: 1
18.07.2016, 14:44 #2
Цитата Сообщение от AgentZ Посмотреть сообщение
В манифесте указал его, как Активити:
зачем?
0
AgentZ
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 130
18.07.2016, 14:50  [ТС] #3
Паблито, хм, не знаю, возможно по привычке, не пинайте =) Убрал запись с манифеста, ничего не изменилось. Метод OnCreate() из Dialog.java не вызывается, судя по всему... почему? =(
0
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,066
Завершенные тесты: 1
18.07.2016, 15:05 #4
ах, это не просто диалог, это наследник от активити
тогда конечно надо вернуть в манифесте

активити не создаются вот так вот через new

Добавлено через 34 секунды
https://developer.android.com/traini...-activity.html
0
AgentZ
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 130
18.07.2016, 15:36  [ТС] #5
Паблито, Что-то андроид сегодня меня не любит. Первый раз такое. Что за фигня?

Java
1
2
3
 
Intent d = new Intent(Screen.this, Dialog.class);
startActivity(d);
Process: agentz.com.soulhuntersapp, PID: 9703
android.content.ActivityNotFoundException: Unable to find explicit activity class {agentz.com.soulhuntersapp/android.app.Dialog}; have you declared this activity in your AndroidManifest.xml?
Да, я вижу "have you declared this activity in your AndroidManifest.xml?", но ведь:

XML
1
2
3
4
5
6
7
8
9
10
11
12
 <activity
            android:name=".Gold"
            android:theme="@style/Theme.AppCompat.NoActionBar"
            android:screenOrientation="landscape">
 
        </activity>
 
        <activity android:name=".Dialog"
            android:theme="@style/Theme.AppCompat.NoActionBar"
            android:screenOrientation="landscape">
 
        </activity>
Абсолютно аналогично у меня созданы все остальные активити и все отлично работают... Чет у меня уже мозг пухнет =(
0
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,066
Завершенные тесты: 1
18.07.2016, 15:39 #6
лучше показать весь манифест
0
AgentZ
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 130
18.07.2016, 15:47  [ТС] #7
Паблито, да тут ничего необычного. я проклят, видимо =)) Ну или просто спать уже пора

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="agentz.com.soulhuntersapp">
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        android:supportsRtl="true">
 
        <activity
 
            android:name=".Screen"
            android:theme="@style/Theme.AppCompat.NoActionBar"
            android:screenOrientation="landscape">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 
        <activity
            android:name=".MainActivity"
            android:theme="@style/Theme.AppCompat.NoActionBar"
            android:screenOrientation="landscape">
 
        </activity>
 
        <activity
            android:name=".Herostats"
            android:theme="@style/Theme.AppCompat.NoActionBar"
            android:screenOrientation="landscape">
 
        </activity>
 
        <activity
            android:name=".Compare"
            android:theme="@style/Theme.AppCompat.NoActionBar"
            android:screenOrientation="landscape">
 
        </activity>
 
        <activity
            android:name=".Info"
            android:theme="@style/Theme.AppCompat.NoActionBar"
            android:screenOrientation="landscape">
 
        </activity>
 
        <activity
            android:name=".Picture"
            android:theme="@style/Theme.AppCompat.NoActionBar"
            android:screenOrientation="portrait">
 
        </activity>
 
        <activity
        android:name=".Clothes"
        android:theme="@style/Theme.AppCompat.NoActionBar"
        android:screenOrientation="landscape">
 
        </activity>
 
        <activity
            android:name=".Exp"
            android:theme="@style/Theme.AppCompat.NoActionBar"
            android:screenOrientation="landscape">
 
        </activity>
 
        <activity
            android:name=".Gold"
            android:theme="@style/Theme.AppCompat.NoActionBar"
            android:screenOrientation="landscape">
 
        </activity>
 
        <activity android:name=".Dialog"
            android:theme="@style/Theme.AppCompat.NoActionBar"
            android:screenOrientation="landscape">
 
        </activity>
 
 
 
 
 
 
 
        <!-- ATTENTION: This was auto-generated to add Google Play services to your project for
     App Indexing.  See [url]https://g.co/AppIndexing/AndroidStudio[/url] for more information. -->
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
    </application>
 
</manifest>
Добавлено через 1 минуту
Причем все остальные активити открываются отлично. Только этот "Диалог" не хочет, сразу вылетает, студия говорит, что в манифесте нет его =(
0
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,066
Завершенные тесты: 1
18.07.2016, 16:01 #8
а если так
Intent d = new Intent(Screen.this, тут.имя.пакета.Dialog.class);
0
AgentZ
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 130
18.07.2016, 16:05  [ТС] #9
Паблито, хм. Получилось, спасибо. Но все же мне не дает покоя мысль, почему так... одновременно с этим, все остальные активити объявлены просто: (Screen.this, Activity.class) и все отлично работают...
0
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,066
Завершенные тесты: 1
18.07.2016, 16:07 #10
потому что в sdk есть класс с названием Dialog
0
AgentZ
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 130
18.07.2016, 16:08  [ТС] #11
И кстати, из-за этой проблемы совсем забыл, зачем сюда пришел. Вопрос с Диалогом-то остался... Как активити открыть не на весь экран, а чтоб всплыло посреди с эффектом затемнения основного активити. Именно так происходит, когда я вызываю диалог (в 1 моем сообщении), но тогда не отрабатывают компоненты...
0
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,066
Завершенные тесты: 1
18.07.2016, 16:08 #12
диалоги - это диалоги
активити - это НЕ диалоги
0
AgentZ
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 130
18.07.2016, 16:14  [ТС] #13
Паблито, Видимо, я просто неправильно поставил вопрос =)) Ну да ладно, только что сам решил эту проблему, поставив прозрачную тему на активити и выставив gravity = center. То, что мне и нужно было =)
0
18.07.2016, 16:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2016, 16:14
Привет! Вот еще темы с ответами:

Отображение активити поверх другого активити - Программирование Android
Ребят подскажите пожалуйста как такое сделать. Есть активити с картой, по нажатию кнопки настройки, нужно открыть активити с настройками,...

Android кнопка “войти” работает только в главной активити (Navigation Drawer) - Программирование Android
в приложении несколько активити с Navigation Drawer, в nav_header главной сделал onClickListener на кнопку Войти, остальные активити...

Не работает всплывающее окно с редактированием - PHP
Здравствуйте! Есть таблица table . При нажатии на кнопку &quot;редактировать&quot; открывается всплывающее окно для редактирования. Вот только id...

Не работает всплывающее вертикальное меню - HTML, CSS
Здравствуйте, есть проблема - Не работает всплывающее вертикальное меню, брал исходники, там все работало, а со своим разобраться не могу,...


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

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

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