Метод onClick не вызывается на Android - PullRequest
8 голосов
/ 03 декабря 2011

Я делаю простейшую модель onClick и не могу запустить метод onClick. Я знаю, что это что-то простое, и я новичок в Android. Любая помощь приветствуется.

package com.bordeloniphone.timeentry;

import android.app.Activity;
import android.os.Bundle;

import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class TimeEntryActivity extends Activity implements OnClickListener{
    /** Called when the activity is first created. */

    Button okButton;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        okButton = (Button) findViewById(R.id.btnOK);
        okButton.setText(":)");
        okButton.setOnClickListener(this);
        //setContentView(okButton);

    }

    public void onClick(View v) {
        Log.d("TEST", "TEST");
        Toast.makeText(this, "TEST", Toast.LENGTH_SHORT).show();

    }

}

Вот main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btnOK"
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:text="OK" />

</LinearLayout>

Ответы [ 6 ]

7 голосов
/ 03 декабря 2011

После долгих волнений и скрежетов зубов я понял это.Мне пришлось удалить эмулятор устройства и добавить новое, и теперь оно работает как чемпион.Я ценю всех, кто пытается помочь.

6 голосов
/ 03 декабря 2011

Вместо установки onClicklistener для этого, попробуйте этот подход:

okButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            Log.d("TEST", "TEST");
            Toast.makeText(this, "TEST", Toast.LENGTH_SHORT).show();
        }
    });
4 голосов
/ 03 декабря 2011

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

ОБНОВЛЕНИЕ:

Кроме того, вы должны проверить свой Logcat, получаете ли вы вывод Log.d("TEST", "TEST");, потому что ваш Toast, кажется, реализован неправильно.

Toast.makeText(this, "TEST", Toast.LENGTH_SHORT).show(); // wrong
Toast.makeText(Activity_name.this, "TEST", Toast.LENGTH_SHORT).show(); // correct

Использование this в Toast внутри слушателяозначает, что вы ссылаетесь на слушателя, что в действительности не должно иметь место.Вы должны ссылаться на саму деятельность, поэтому лучше использовать Activity_name.this.

0 голосов
/ 04 мая 2015

Проверка на три шага:

  1. найти кнопку по идентификатору правильно
  2. привязать кнопку к слушателю.(добавив actionListener)
  3. вы указываете условие для этой кнопки в случае реализации класса actionListener.
0 голосов
/ 22 января 2014

Кнопка iv_StyleInspiration_Back = (кнопка) findViewById (R.id.iv_StyleInspiration_Back);iv_StyleInspiration_Back.setOnClickListener (this);

Попробуйте это Каждый раз, когда вы реализуете onclick в своей деятельности, вам нужно установить, как указано выше, чтобы она работала для всех элементов управления, а onclick должен выглядеть примерно так, как показано ниже

@Override
    public void onClick(View pView) {
        if (null != pView) {
            switch (pView.getId()) {
                case  R.id.iv_StyleInspiration_Back:
                    //do what you want
                                    break;
                default:
                    break;
            }
        }
    }
0 голосов
/ 03 декабря 2011

попробуйте сделать кнопку нажатой

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<Button
    android:id="@+id/btnOK"
    android:layout_width="80dp"
    android:layout_height="wrap_content"
    android:text="OK"
    android:clickable="true" />

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...