Кнопка «Слушатель в Android» не работает - PullRequest
2 голосов
/ 16 января 2012

У меня действительно странная проблема с кнопкой прослушивания моего андроида! Я уже делал это несколько раз, я схожу с ума, не находя решения (ни логического объяснения) для этой ошибки.

ошибка Обработчик событий для 2 кнопок в моей активности не выполняется. Нет ошибки, это просто не выполнение действия обработчика во время выполнения. Это код для одной из кнопок:

btnNext = (Button) findViewById(R.listclient.btnnext);
btnNext.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            Toast.makeText(MyActivityClassName.this, "Flag 01", 1).show();
                            btnNext.setText("CLICKED!");
        }
    });

И это кнопка на макете XML:

<Button android:id="@+listclient/btnnext"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:clickable="true"
            style="@style/Widget.TextViewInfo"
            android:text="Next"
            />

информация

  • В этом упражнении также есть ImageButton, этот imageButton прекрасно работает с внутренним классом OnClickListener (как и этот).
  • Я уже пытался заставить свой класс активности наследовать OnClickListener и установить его в качестве прослушивателя щелчка для кнопки, но безуспешно.
  • Я также создал класс внутри своего класса Activity и установил его в качестве прослушивателя нажатия кнопки, но тоже безуспешно.

Я компилирую для Android 2.1 + Google API (SDK 7)

------------ EDITED -----------------

Если я введу свой код:

btnNext.performClick();

Выполнено! Я сейчас схожу с ума! И кнопка фактически нажата, когда я касаюсь ее, я вижу кнопку «анимация», и щелчок регистрируется в LogCat.

Ответы [ 2 ]

8 голосов
/ 16 января 2012

Нельзя использовать listclient при указании или использовании идентификатора. Первая часть - это тип ресурса, который в вашем случае должен быть id.

Измените android:id="@+listclient/btnnext" на android:id="@+id/btnnext". Также настройте свой код:

btnNext = (Button) findViewById(R.id.btnnext);
0 голосов
/ 16 января 2012

При быстром взгляде на ваш код я заметил, что вы неправильно набираете findViewById.Измените id вашей кнопки на «test», затем попробуйте: findViewById(R.id.test).Имеет смысл?

...