android java setOnClickListener错误

WmB*_*ert 2 java android

我正在尝试按下btnExecute时执行例行程序.我在每个onClick btnxxx.setOnClickListener上收到错误,声明"新的View.OnClickListener(){}类型必须实现继承的抽象方法View.OnClickListener.onClick(View).请帮我理解什么是错的.

package com.androidbook.triviaquiz8;

import android.os.Bundle;
import android.os.Environment;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.SpinnerAdapter;

public class QuizHelpActivity extends QuizActivity {
    private EditText m1_sqs1;
    private EditText m1_rs1;
    private EditText m1_rs2;
    private EditText m1_cd;
    private EditText m1_els1;
    private EditText m1_els2;

    private EditText m1_sa_in;
    private EditText m1_sa_ft;
    private EditText m1_sa_mm;
    private EditText m1_sa_m;

    private EditText m1_ed_in;
    private EditText m1_ed_ft;
    private EditText m1_ed_mm;
    private EditText m1_ed_m;

    private Spinner m1_sqs1_spinner;
    private Spinner m1_rs1_unit;
    private Spinner m1_rs2_unit;
    private Spinner m1_cd_unit;
    private Spinner m1_els1_unit;
    private Spinner m1_els2_unit;

    private QuizHelpActivity mContext;

    private Button btnSave;
    private Button btnClear;
    private Button btnExecute;


    // 
    // onCreate - let the fun begin!
    // 

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mContext = this;
        setContentView(R.layout.help);

        m1_sqs1 = (EditText) findViewById(R.id.m1_sqs1);
        m1_rs1 = (EditText) findViewById(R.id.m1_rs1);
        m1_rs2 = (EditText) findViewById(R.id.m1_rs2);
        m1_cd = (EditText) findViewById(R.id.m1_cd);
        m1_els1 = (EditText) findViewById(R.id.m1_els1);
        m1_els2 = (EditText) findViewById(R.id.m1_els2);

        m1_sa_in = (EditText) findViewById(R.id.m1_sa_in);
        m1_sa_ft = (EditText) findViewById(R.id.m1_sa_ft);
        m1_sa_mm = (EditText) findViewById(R.id.m1_sa_mm);
        m1_sa_m = (EditText) findViewById(R.id.m1_sa_m);

        m1_ed_in = (EditText) findViewById(R.id.m1_ed_in);
        m1_ed_ft = (EditText) findViewById(R.id.m1_ed_ft);
        m1_ed_mm = (EditText) findViewById(R.id.m1_ed_mm);
        m1_ed_m = (EditText) findViewById(R.id.m1_ed_m);

        // Create an OnClick Event in each button.

        Button btnExecute = (Button) findViewById(R.id.btnExecute);
        Button btnSave = (Button) findViewById(R.id.btnSave);
        Button btnClear = (Button) findViewById(R.id.btnClear);

        btnSave.setOnClickListener(new OnClickListener() {
            public void onClick(View arg0) {
            }
        });
        btnClear.setOnClickListener(new OnClickListener() {
            public void onClick(View arg0) {
            }
        });
        btnExecute.setOnClickListener(new OnClickListener() {
            private AlertDialog show;

            public void onClick(View arg0) {
                if ((m1_sqs1.getText().length() == 0)
                        || (m1_sqs1.getText().toString() == " ")) {
                    show = new AlertDialog.Builder(mContext).setTitle("Error")
                            .setMessage("The Square Side length is empty")
                            .setPositiveButton("OK", null).show();
                } else if (operator.getText().equals("")) {
                    show = new AlertDialog.Builder(mContext).setTitle("Error")
                            .setMessage(" is null").setPositiveButton(
                                    "OK", null).show();
                }
                {
                    double m1_sa_in = new Double(m1_sqs1.getText().toString())
                            * new Double(m1_sqs1.getText().toString());
                    m1_sa_in.setText(Double.toString(m1_sa_in));
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

cit*_*onn 10

你在哪里

btnSave.setOnClickListener(new OnClickListener() {   
Run Code Online (Sandbox Code Playgroud)

改变它

btnSave.setOnClickListener(new View.OnClickListener() {   
Run Code Online (Sandbox Code Playgroud)

这只是更新的方式,所以如果您正在关注较旧的教程或博客文章,那就是它过时的原因.

编辑:

import android.view.View.OnClickListener;

View view = findViewById(android.R.id.content);
    view.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // do something
        }
    });
Run Code Online (Sandbox Code Playgroud)