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

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

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

Не могу разобраться почему выскакивает ошибка..пока только учусь http://startandroid.ru/ru/uroki/vse-...re-button.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
Миниатюры
Не работает обработчик события кнопки  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2014, 10:04
Ответы с готовыми решениями:

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

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

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

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

Socket.io (прослушивание события работает на Desktop и не работает на Android)
Есть метод, прослушивающий событие сервера по soket.io (import...

18
Stem123
1 / 1 / 0
Регистрация: 14.06.2013
Сообщений: 37
27.01.2014, 10:12  [ТС] 2
мб что-то с библиотеками?
у меня вот так отмечено
0
Миниатюры
Не работает обработчик события кнопки  
vxg
Модератор
3265 / 2063 / 325
Регистрация: 13.01.2012
Сообщений: 8,003
27.01.2014, 10:41 3
говорит русским голосом что после case должна быть константа. у вас там не константа. как решение "в лоб" - перепишите через if-ы
0
Stem123
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
verylazy
Заблокирован
27.01.2014, 11:27 5
файл R руками трогать НЕЛЬЗЯ!
там все строки по идее должны быть final поэтому оно и ругается что не константа
0
Stem123
1 / 1 / 0
Регистрация: 14.06.2013
Сообщений: 37
27.01.2014, 12:11  [ТС] 6
Я файл R руками не трогал..просто скопировал часть содержания его сюда...там что написано-всё автоматически прописалось...всё как по урокам
0
verylazy
Заблокирован
27.01.2014, 12:18 7
попробуй удалить файл R.java, он должен сразу же создаться заново, а потом проверить, появился ли модификатор final
0
MegaSinner
98 / 94 / 9
Регистрация: 09.04.2010
Сообщений: 746
27.01.2014, 12:18 8
Stem123, онКлик вместе с оверрайдом вытащите из онКриейта, листенер удаляем совсем.
В дизайнере находим те кнопки - в свойствах ставим галку Clickable, а в onClick() выбираем наш onClick(). Всё.
0
verylazy
Заблокирован
27.01.2014, 12:22 9
Цитата Сообщение от MegaSinner Посмотреть сообщение
Stem123, онКлик вместе с оверрайдом вытащите из онКриейта, листенер удаляем совсем.
В дизайнере находим те кнопки - в свойствах ставим галку Clickable, а в onClick() выбираем наш onClick(). Всё.
у него все поля в файле R генерятся без модификатора final, это видно в первом сообщении, поэтому ругается что не константа
и такой синтаксис в onClick в том же первом сообщении тоже работает нормально
0
MegaSinner
98 / 94 / 9
Регистрация: 09.04.2010
Сообщений: 746
27.01.2014, 14:59 10
verylazy,

Не по теме:

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

0
vxg
Модератор
3265 / 2063 / 325
Регистрация: 13.01.2012
Сообщений: 8,003
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
Stem123
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
verylazy
Заблокирован
28.01.2014, 10:32 15
У меня такое чувство, что мои сообщения иногда тупо не читают.
0
Stem123
1 / 1 / 0
Регистрация: 14.06.2013
Сообщений: 37
28.01.2014, 11:07  [ТС] 16
Да нет почему читаю, но я же вроде всё изначально делал правильно и импорт обновил, и сохранил всё, и запустил сначала эмулятор и потом приложение...помогло только снова автоматическое создание R файла...мне просто интересно почему так происходит и стоит л ожидать такое в будущем...насколько стабильность среды разработки
0
MegaSinner
98 / 94 / 9
Регистрация: 09.04.2010
Сообщений: 746
28.01.2014, 11:32 17
Stem123, то глюк среды. У меня когда-то тупо ругалось на R и никакой там clear не помог.
0
verylazy
Заблокирован
28.01.2014, 11:40 18
Цитата Сообщение от Stem123 Посмотреть сообщение
Да нет почему читаю, но я же вроде всё изначально делал правильно и импорт обновил, и сохранил всё, и запустил сначала эмулятор и потом приложение...помогло только снова автоматическое создание R файла...мне просто интересно почему так происходит и стоит л ожидать такое в будущем...насколько стабильность среды разработки
Откуда мне знать что там нажималось, удалялось, добавлялось и менялось. Это все слова - я ничего не делал, оно само. Это старо как мир, бородатый баян "мопед не мой, я просто разместил объяву".

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

Вот так вот с утра.
0
shavuz
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 596
29.01.2014, 21:01 19
а вы не пробовали перенести все в новый проект. иногда помогает . тем более если это короткий проект. R файл не компелируется нормально и по этому он не видит ничего. тем более если это короткий проект. еще билд ол проверте, посмотрите на что он делает билд, может именно этот проект не билдится.
0
29.01.2014, 21:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2014, 21:01

Не работает обработчик выбора файла
Снова пытаюсь разобраться с AIDE на мобиле. Проблема в том, что не отрабатывает...

Не работает приложение после нажатия кнопки home
Добрый день, дорогие форумчане.:) Волнует такой вопрос - написала приложение...

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


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

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

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