尝试单独实施 onClickListener class 但无法解析 findViewById

Trying to implement onClickListener in seperate class but findViewById cannot be resolved

我正在尝试创建一个单独的 class 来为我的按钮和 EditText 实现 onClickListeners,但我一直收到一条错误消息,指出无法解析 findViewById。我已插入以下代码:

package com.example.afa.geobuddy;

import android.view.View;
import android.widget.Button;
public class onClickListener implements View.OnClickListener {
    Button cancel_button = (Button) findViewById(R.id.btn_cancel);
    @Override
    public void onClick(View v) {

    }
}

发生这种情况是因为 findViewById 方法是 android.app.Activity class 的成员,即它只能从 Activity 中的匿名 class 可见。 因此,为了在单独的 class 中定义您的 onClickListener,您应该将视图传递给它,如下所示:

public class MyOnClickListener implements View.OnClickListener {

    @Override
    public void onClick(View v) {

    }
}

在你的某处 activity:

Button button = (Button) findViewById(R.id.btn_cancel)
button.setOnClickListener(new MyOnClickListener());