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

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

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

Author24 — интернет-сервис помощи студентам
Задача состоит в том, как передать параметры из диалогового окна.
Есть главная активность с кнопкой, по нажатию которой появляется диалоговое окно
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
Ответ Создать тему
Новые блоги и статьи
Работа с объемным DOM в javascript
Htext 04.04.2025
Сегодня прочитал статью тут о расходах памяти в JS, ее утечках и т. п. И вот что вспомнил из своей недавней практики. Может, кому пригодится. Хотя, в той статье об этом тоже есть. Дело в том, что я. . .
Оптимизация производительности Node.js с помощью кластеризации
run.dev 04.04.2025
Масштабирование приложений для обработки тысяч и миллионов запросов — обыденная задача для многих команд. Node. js, благодаря своей асинхронной событийно-ориентированной архитектуре, стал популярной. . .
Управление зависимостями в Python с Poetry
py-thonny 04.04.2025
Стандартный инструмент для установки пакетов в Python - pip - прекрасно справляется с базовыми сценариями: установил пакет командой pip install и используешь его. Но что произойдёт, когда разные. . .
Мониторинг с Prometheus в PHP
Jason-Webb 04.04.2025
Prometheus выделяется среди других систем мониторинга своим подходом к сбору и хранению метрик. В отличие от New Relic, который использует агентный подход и отправляет данные во внешнее хранилище,. . .
Пакет Context в Golang: Управление потоками и ресурсами
golander 04.04.2025
Работа с горутинами в Go часто напоминает управление непослушными детьми - они разбегаются кто куда, делают что хотят и не всегда завершаются вовремя. К счастью, в Go 1. 7 появился пакет context,. . .
Контейнеризация React приложений с Docker
Reangularity 03.04.2025
Контейнеризация позволяет упаковать приложение со всеми его зависимостями в автономный контейнер, который можно запустить на любой платформе с установленным Docker. Это существенно упрощает процессы. . .
Свой попап в SwiftUI
mobDevWorks 03.04.2025
SwiftUI, как декларативный фреймворк от Apple, предоставляет множество инструментов для создания пользовательских интерфейсов. В нашем распоряжении есть такие API как alerts, popovers, action sheets. . .
Антипаттерны микросервисной архитектуры
ArchitectMsa 03.04.2025
Хорошо спроектированная микросервисная система может выдержать испытание временем, оставаясь гибкой, масштабируемой и устойчивой к большинству проблем. Такая архитектура обладает высоким уровнем. . .
std::mutex в C++: Советы и примеры использования
bytestream 03.04.2025
std::mutex - это механизм взаимного исключения, который гарантирует, что критический участок кода выполняется только одним потоком в каждый момент времени. Это простое, но могущественное средство. . .
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер