С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Stochfard
4 / 4 / 0
Регистрация: 23.12.2011
Сообщений: 79
1

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

16.03.2014, 21:17. Просмотров 1701. Ответов 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)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2014, 21:17
Ответы с готовыми решениями:

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

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

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

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

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

7
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
16.03.2014, 21:40 2
Лучший ответ Сообщение было отмечено 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
Stochfard
4 / 4 / 0
Регистрация: 23.12.2011
Сообщений: 79
17.03.2014, 16:57  [ТС] 3
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"
Пишет: не удается выполнить метод активности.
Кликните здесь для просмотра всего текста

Код
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
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
17.03.2014, 19:00 4
Цитата Сообщение от Stochfard Посмотреть сообщение
Пишет: не удается выполнить метод активности.
Зачем вы выбросили строчку
Java
1
 View view = MainActivity.this.getLayoutInflater().inflate(R.layout.nument, null);
?
Без нее не заработает.
0
Stochfard
4 / 4 / 0
Регистрация: 23.12.2011
Сообщений: 79
17.03.2014, 19:16  [ТС] 5
angryrobot/, будь я немного повнимательнее можно было бы сэкономить кучу времени =) списибо огромное, все работает.
0
Sony17
28 / 28 / 10
Регистрация: 24.05.2013
Сообщений: 157
17.03.2014, 20:47 6
angryrobot, 9 обработчиков создавать чтоли? Не лучше ли создать 1, в нем через switch искать id нажатой кнопки, добавив этот общий обработчик всем кнопкам?
1
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
17.03.2014, 21:49 7
Цитата Сообщение от Sony17 Посмотреть сообщение
Не лучше ли создать 1, в нем через switch искать id нажатой кнопки, добавив этот общий обработчик всем кнопкам
Этот вариант тоже приемлем
0
Saska81
3 / 0 / 1
Регистрация: 11.10.2015
Сообщений: 16
11.10.2015, 14:12 8
Цитата Сообщение от angryrobot Посмотреть сообщение
Этот вариант тоже приемлем
Если не сложно, angryrobot или кто понимает хорошо выше написанный код, для начинающих:
дайте полный код с использованием одного обработчика и через switch искать id нажатой кнопки.
Спасибо!
0
11.10.2015, 14:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2015, 14:12

Чем отличается Eclipse IDE for Java EE Developers от Eclipse IDE for Java Developers?
чем отличается Eclipse IDE for Java EE Developers и Eclipse IDE for Java...

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

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


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

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

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