1 / 1 / 0
Регистрация: 14.06.2013
Сообщений: 37
1

Не работает обработчик события кнопки

27.01.2014, 10:04. Показов 3545. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не могу разобраться почему выскакивает ошибка..пока только учусь http://startandroid.ru/ru/urok... utton.html

хочу сделать примерно тоже самое и почему-то ошибка выходит((

причина в чём может быть?


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
package ru.chita.developobrabotka;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
 
public class MainActivity extends Activity {
       TextView zagtext;
       Button butOk;
       Button butNo;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        // найдем View-элементы
        zagtext = (TextView) findViewById(R.id.zagtext);
        butOk = (Button) findViewById(R.id.butOk);
        butNo = (Button) findViewById(R.id.butNo);
        
         // создание обработчика
         OnClickListener oclBtn = new OnClickListener() {
           @Override
           public void onClick(View v) {
             // TODO Auto-generated method stub
               switch (v.getId()) {
               case R.id.butOk:
                 // кнопка ОК
                   butOk.setText("Нажата кнопка ОК");
                 break;
               case R.id.butNo:
                 // кнопка Cancel
                   butNo.setText("Нажата кнопка Cancel");
                 break;
               }
     
           }
         };
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
}

при этом

Java
1
2
3
4
5
6
7
8
public final class R {
   .....
    public static final class id {
        public static int action_settings=0x7f080003;
        public static int butNo=0x7f080002;
        public static int butOk=0x7f080001;
        public static int zagtext=0x7f080000;
.....

и в main.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
RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
 
    <TextView
        android:id="@+id/zagtext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="17dp"
        android:text="@string/hello_world" />
 
    <Button
        android:id="@+id/butOk"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/zagtext"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="48dp"
        android:text="Ok" />
 
    <Button
        android:id="@+id/butNo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/butOk"
        android:layout_alignBottom="@+id/butOk"
        android:layout_toRightOf="@+id/zagtext"
        android:text="No" />
 
</RelativeLayout>
всё же правильно сделал...я ещё просто обработчик создал...ещё ему не скормил кнопкам...предварительно хотел запустить приложение...но вот уже ошибка((
Миниатюры
Не работает обработчик события кнопки  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2014, 10:04
Ответы с готовыми решениями:

Обработчик кнопки не работает - приложение компилируется, но крашится при запуске
Всем привет! Собственно, проблема: у меня получилось сделать udp-listener за пару вечеров - слава...

Обработчик события ToggleButton
Доброго времени суток! Имеется ToggleButton на форме На кнопку прикручена функция, которая...

Обработчик кнопки
С помощью нажатия хочу перелистывать интерфейс приложения. XML заранее уже сделаны в layout - без...

Обработчик кнопки
В Activity_main.xml 2 кнопки c атрибутом android:onClick (onpizz &amp; oncrecs), по нажатию на которые...

18
1 / 1 / 0
Регистрация: 14.06.2013
Сообщений: 37
27.01.2014, 10:12  [ТС] 2
мб что-то с библиотеками?
у меня вот так отмечено
Миниатюры
Не работает обработчик события кнопки  
0
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
27.01.2014, 10:41 3
говорит русским голосом что после case должна быть константа. у вас там не константа. как решение "в лоб" - перепишите через if-ы
0
1 / 1 / 0
Регистрация: 14.06.2013
Сообщений: 37
27.01.2014, 10:58  [ТС] 4
вот попробовал так...всё равно не так((
а попробовал через if-говорит синтаксис не правильный


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void onClick(View v) {
             // TODO Auto-generated method stub
               switch (v.getId()) {
               case butOk:
                 // кнопка ОК
                   butOk.setText("Нажата кнопка ОК");
                 break;
               case butNo:
                 // кнопка Cancel
                   butNo.setText("Нажата кнопка Cancel");
                 break;
               }
     
           }

butOk и butNo - это же константы у меня же...

вот в R.java

Java
1
2
3
4
5
6
7
8
...
 public static final class id {
        public static int action_settings=0x7f080003;
        public static int butNo=0x7f080002;
        public static int butOk=0x7f080001;
        public static int zagtext=0x7f080000;
    }
...
0
Заблокирован
27.01.2014, 11:27 5
файл R руками трогать НЕЛЬЗЯ!
там все строки по идее должны быть final поэтому оно и ругается что не константа
0
1 / 1 / 0
Регистрация: 14.06.2013
Сообщений: 37
27.01.2014, 12:11  [ТС] 6
Я файл R руками не трогал..просто скопировал часть содержания его сюда...там что написано-всё автоматически прописалось...всё как по урокам
0
Заблокирован
27.01.2014, 12:18 7
попробуй удалить файл R.java, он должен сразу же создаться заново, а потом проверить, появился ли модификатор final
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
27.01.2014, 12:18 8
Stem123, онКлик вместе с оверрайдом вытащите из онКриейта, листенер удаляем совсем.
В дизайнере находим те кнопки - в свойствах ставим галку Clickable, а в onClick() выбираем наш onClick(). Всё.
0
Заблокирован
27.01.2014, 12:22 9
Цитата Сообщение от MegaSinner Посмотреть сообщение
Stem123, онКлик вместе с оверрайдом вытащите из онКриейта, листенер удаляем совсем.
В дизайнере находим те кнопки - в свойствах ставим галку Clickable, а в onClick() выбираем наш onClick(). Всё.
у него все поля в файле R генерятся без модификатора final, это видно в первом сообщении, поэтому ругается что не константа
и такой синтаксис в onClick в том же первом сообщении тоже работает нормально
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
27.01.2014, 14:59 10
verylazy,

Не по теме:

я Эклипс терпеть не могу из-за таких вот глюков. Ни грамма не жалею, что пересел на Идею.

0
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
27.01.2014, 15:13 11
Цитата Сообщение от Stem123 Посмотреть сообщение
а попробовал через if-говорит синтаксис не правильный
Java
1
2
3
4
public void onClick(View v) {
               if (v.getId() == R.id.butOk) {
               }
           }
0
Севак
27.01.2014, 18:52
  #12

Не по теме:

MegaSinner, как правило очистка проекта помогает, мне, по крайней мере, всегда

0
1 / 1 / 0
Регистрация: 14.06.2013
Сообщений: 37
28.01.2014, 03:24  [ТС] 13
Всё работает исправно после удаления R.java и заново создание его....
код не правил...и всё заработало
А почему так происходит?это глюки среды разработки или что?
1
NiRamz
28.01.2014, 04:53
  #14

Не по теме:

В любой не понятной ситуации делайте clear проекта :)

0
Заблокирован
28.01.2014, 10:32 15
У меня такое чувство, что мои сообщения иногда тупо не читают.
0
1 / 1 / 0
Регистрация: 14.06.2013
Сообщений: 37
28.01.2014, 11:07  [ТС] 16
Да нет почему читаю, но я же вроде всё изначально делал правильно и импорт обновил, и сохранил всё, и запустил сначала эмулятор и потом приложение...помогло только снова автоматическое создание R файла...мне просто интересно почему так происходит и стоит л ожидать такое в будущем...насколько стабильность среды разработки
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
28.01.2014, 11:32 17
Stem123, то глюк среды. У меня когда-то тупо ругалось на R и никакой там clear не помог.
0
Заблокирован
28.01.2014, 11:40 18
Цитата Сообщение от Stem123 Посмотреть сообщение
Да нет почему читаю, но я же вроде всё изначально делал правильно и импорт обновил, и сохранил всё, и запустил сначала эмулятор и потом приложение...помогло только снова автоматическое создание R файла...мне просто интересно почему так происходит и стоит л ожидать такое в будущем...насколько стабильность среды разработки
Откуда мне знать что там нажималось, удалялось, добавлялось и менялось. Это все слова - я ничего не делал, оно само. Это старо как мир, бородатый баян "мопед не мой, я просто разместил объяву".

Пойдем дальше. Стоит ли ожидать этого? Что изменится от того, что какой-то анонимус где-то на форуме в интернетах напишет "ДА!!! тебе стоит ожидать этого!!!".
Или наоборот, напишет "да забей и работай, не создавай себе и другим головняк". Что-то поменялось? Какой из вариантов ответа заставит тебя прочитать что-то новое из документации или начать гуглить на эту тему?

Вот так вот с утра.
0
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
29.01.2014, 21:01 19
а вы не пробовали перенести все в новый проект. иногда помогает . тем более если это короткий проект. R файл не компелируется нормально и по этому он не видит ничего. тем более если это короткий проект. еще билд ол проверте, посмотрите на что он делает билд, может именно этот проект не билдится.
0
29.01.2014, 21:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2014, 21:01
Помогаю со студенческими работами здесь

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

Обработчик события по нажатию кнопки
Есть программа с динамически создаваемыми кнопками. Каждая кнопка изменяет содержимое некого...

Обработчик события 'нажатие кнопки'
Уважаемые знатоки! Нужно всего-то ничего - добавить на форму обработчик события 'нажатие...

Обработчик события кнопки в методе Main
Как переделать приведенный ниже код программы, чтобы обработчик события кнопки (private void...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru