Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
4 / 4 / 0
Регистрация: 23.12.2011
Сообщений: 80

Eclipse обработчик нажатия клавиши

16.03.2014, 21:17. Показов 3490. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача состоит в том, как передать параметры из диалогового окна.
Есть главная активность с кнопкой, по нажатию которой появляется диалоговое окно
Java
1
2
3
4
5
6
7
public void Click_1(View v){
 
            Dialog D = new Dialog(MainActivity.this);
            D.setTitle("Выберите число");
            D.setCancelable(true);
            D.setContentView(R.layout.nument);
            D.show(); }
На диалоговом окне расположено 9 кнопок, при нажатии на любую из них диалоговое окно закрывается, и допустим записывается в любую переменную значение 1-9 ( в зависимости от нажатой кнопки ).
Окно запускаю, но как понять что кнопка было нажата ( в окне ) и именно какая была нажата, я так и не понял.
пытался через
Java
1
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {@Override public void onClick(View v) {/**/}});
но не понятно в какой функции это писать.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.03.2014, 21:17
Ответы с готовыми решениями:

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

Обработчик нажатия на ListView
Добрый день, перерыл много сайтов, но ответ все же не нашел. Проблема в следующем. У меня имеется обычный ListView и стандартный...

Кнопка в listView и обработчик нажатия
Здравствуйте.Помогите пожалуста. Есть список ListView обрабатываю нажатие элемента из списка вот этим кодом mList = (ListView)...

7
Командир зеленых роботов
 Аватар для angryrobot
349 / 286 / 54
Регистрация: 08.10.2013
Сообщений: 576
16.03.2014, 21:40
Лучший ответ Сообщение было отмечено Stochfard как решение

Решение

Цитата Сообщение от Stochfard Посмотреть сообщение
но не понятно в какой функции это писать.
Попробуйте вот как-то так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        Dialog D = new Dialog(MainActivity.this);
        D.setTitle("Выберите число");
        D.setCancelable(true);
        View view = MainActivity.this.getLayoutInflater().inflate(R.layout.nument, null);
        Button btn1 = (Button) view.findViewById(R.id.button_one);
        btn1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                
            }
        });
        Button btn2 = (Button) view.findViewById(R.id.button_two);
        btn1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
            }
        });
        D.setContentView(view);
        D.show();
1
4 / 4 / 0
Регистрация: 23.12.2011
Сообщений: 80
17.03.2014, 16:57  [ТС]
angryrobot,
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
             public void Click_1(View view){
            Dialog D = new Dialog(MainActivity.this);
            Log.i("Step", "1");
            D.setTitle("Выберите число");
            Log.i("Step", "2");
            D.setCancelable(true);
            Log.i("Step", "3");
                Button btn1 = (Button) view.findViewById(R.id.button1);
                btn1.setOnClickListener(new OnClickListener() {
                            @Override
                            public void onClick(View view) {
                                        Log.i("Step", "4");  
                }});
                Log.i("Step", "5");
                D.setContentView(view);
                Log.i("Step","6");
                D.show();
            }
Компилируется и запускается, но при нажатии на компонент с обработчиком Click_1 вылетает сообщение о принудительном закрытии.



По логу: первые три "шага" он выполняет а потом "FATAL EXCEPTION"
Пишет: не удается выполнить метод активности.
Кликните здесь для просмотра всего текста

Code
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
03-17 12:52:02.479: I/Step(558): 1
03-17 12:52:02.479: I/Step(558): 2
03-17 12:52:02.479: I/Step(558): 3
03-17 12:52:02.489: D/AndroidRuntime(558): Shutting down VM
03-17 12:52:02.489: W/dalvikvm(558): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
03-17 12:52:02.509: E/AndroidRuntime(558): FATAL EXCEPTION: main
03-17 12:52:02.509: E/AndroidRuntime(558): java.lang.IllegalStateException: Could not execute method of the activity
03-17 12:52:02.509: E/AndroidRuntime(558):  at android.view.View$1.onClick(View.java:2072)
03-17 12:52:02.509: E/AndroidRuntime(558):  at android.view.View.performClick(View.java:2408)
03-17 12:52:02.509: E/AndroidRuntime(558):  at android.view.View$PerformClick.run(View.java:8816)
03-17 12:52:02.509: E/AndroidRuntime(558):  at android.os.Handler.handleCallback(Handler.java:587)
03-17 12:52:02.509: E/AndroidRuntime(558):  at android.os.Handler.dispatchMessage(Handler.java:92)
03-17 12:52:02.509: E/AndroidRuntime(558):  at android.os.Looper.loop(Looper.java:123)
03-17 12:52:02.509: E/AndroidRuntime(558):  at android.app.ActivityThread.main(ActivityThread.java:4627)
03-17 12:52:02.509: E/AndroidRuntime(558):  at java.lang.reflect.Method.invokeNative(Native Method)
03-17 12:52:02.509: E/AndroidRuntime(558):  at java.lang.reflect.Method.invoke(Method.java:521)
03-17 12:52:02.509: E/AndroidRuntime(558):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
03-17 12:52:02.509: E/AndroidRuntime(558):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
03-17 12:52:02.509: E/AndroidRuntime(558):  at dalvik.system.NativeStart.main(Native Method)
03-17 12:52:02.509: E/AndroidRuntime(558): Caused by: java.lang.reflect.InvocationTargetException
03-17 12:52:02.509: E/AndroidRuntime(558):  at com.example.square.MainActivity.Click_1(MainActivity.java:40)
03-17 12:52:02.509: E/AndroidRuntime(558):  at java.lang.reflect.Method.invokeNative(Native Method)
03-17 12:52:02.509: E/AndroidRuntime(558):  at java.lang.reflect.Method.invoke(Method.java:521)
03-17 12:52:02.509: E/AndroidRuntime(558):  at android.view.View$1.onClick(View.java:2067)
03-17 12:52:02.509: E/AndroidRuntime(558):  ... 11 more
03-17 12:52:02.509: E/AndroidRuntime(558): Caused by: java.lang.NullPointerException
03-17 12:52:02.509: E/AndroidRuntime(558):  ... 15 more
0
Командир зеленых роботов
 Аватар для angryrobot
349 / 286 / 54
Регистрация: 08.10.2013
Сообщений: 576
17.03.2014, 19:00
Цитата Сообщение от Stochfard Посмотреть сообщение
Пишет: не удается выполнить метод активности.
Зачем вы выбросили строчку
Java
1
 View view = MainActivity.this.getLayoutInflater().inflate(R.layout.nument, null);
?
Без нее не заработает.
0
4 / 4 / 0
Регистрация: 23.12.2011
Сообщений: 80
17.03.2014, 19:16  [ТС]
angryrobot/, будь я немного повнимательнее можно было бы сэкономить кучу времени =) списибо огромное, все работает.
0
28 / 28 / 10
Регистрация: 24.05.2013
Сообщений: 157
17.03.2014, 20:47
angryrobot, 9 обработчиков создавать чтоли? Не лучше ли создать 1, в нем через switch искать id нажатой кнопки, добавив этот общий обработчик всем кнопкам?
1
Командир зеленых роботов
 Аватар для angryrobot
349 / 286 / 54
Регистрация: 08.10.2013
Сообщений: 576
17.03.2014, 21:49
Цитата Сообщение от Sony17 Посмотреть сообщение
Не лучше ли создать 1, в нем через switch искать id нажатой кнопки, добавив этот общий обработчик всем кнопкам
Этот вариант тоже приемлем
0
3 / 0 / 1
Регистрация: 11.10.2015
Сообщений: 16
11.10.2015, 14:12
Цитата Сообщение от angryrobot Посмотреть сообщение
Этот вариант тоже приемлем
Если не сложно, angryrobot или кто понимает хорошо выше написанный код, для начинающих:
дайте полный код с использованием одного обработчика и через switch искать id нажатой кнопки.
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.10.2015, 14:12
Помогаю со студенческими работами здесь

EditText обработчик нажатия на Enter
Всем привет! Не могу понять, почему не работает код: final EditText editText = (EditText)findViewById(R.id.editText); ...

Обработчик нажатия для вложенных лайаутов
Здравствуйте! Подскажите как определить какая кнопка вызвала OnClick, если кнопки находятся во вложенных однотипных layout-ах и...

Обработчик нажатия клавиши
Всем доброго времени суток, возникла небольшая проблема, код не реагирует на нажатие клавиши =( Подскажите в чём проблема =) using...

Обработчик нажатия клавиши
Во многих источниках можно найти код обработчика события нажатия клавиши. Например, такой: #pragma endregion private: System::Void...

C# обработчик нажатия клавиши
Всем привет! Облазил весь интернет и не смог найти подходящего кода( Нужно чтобы при нажатии на клавишу выполнялось какое-либо действие....


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru