Java 我的项目的setOnClickListener(new View.OnClickListener()不工作

Java 我的项目的setOnClickListener(new View.OnClickListener()不工作,java,android,Java,Android,我正在开发一个小的测试项目,我编写了以下代码。 我已经在xml文件中创建了一个id为“registerBtn”的按钮 我删除了此源代码的导入,以缩短此源代码的空间 在java文件中,我创建了一个名为mRegisterBtn的变量,类型为Button。 在名为onCreate(Bundle savedInstanceState)的方法中,mRegisterBtn接收名为findviewbyd(R.id.registerBtn)的方法 但是,在mRegisterBtn.setOnClickListe

我正在开发一个小的测试项目,我编写了以下代码。 我已经在xml文件中创建了一个id为“registerBtn”的按钮

我删除了此源代码的导入,以缩短此源代码的空间

在java文件中,我创建了一个名为mRegisterBtn的变量,类型为Button。 在名为onCreate(Bundle savedInstanceState)的方法中,mRegisterBtn接收名为findviewbyd(R.id.registerBtn)的方法

但是,在mRegisterBtn.setOnClickListener中,new View.OnClickListener的部分显示为灰色,并且在尝试测试此代码时它不起作用

此图显示了我的真正意思。请注意,new View.OnClickListener的部分显示为灰色。这意味着出现错误。但尝试编译时,此代码运行,但按钮根本不起作用

有人知道如何修复这个错误吗


尝试将活动本身用作上下文

如果你想要一根圆木,那就做一根

如果你想让灰色消失,就用lambda

Log.d("REGISTER", "Setting listener");
mRegisterBtn.setOnClickListener(view -> {
    Log.d("REGISTER", "Clicked!");
    Toast.makeText(Register2.this, "Testing", Toast.LENGTH_LONG).show();
});

您是否尝试过设置断点,因为某些智能手机上无法显示
Toast
?此外,灰色没有问题,只是说您可以删除该断点并使用它。我使用了您的代码。它没有问题。您看到的错误是什么?请从logcat或run添加xml文件和错误消息。Shawnre没有消息错误。非常感谢,Henry。非常感谢。但它仍然不起作用。请您测试一下?在我这方面工作正常。确保
activity\u register2.xml
是您要加载的正确文件
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#007FFF"
    tools:context=".Register">

    <Button
        android:id="@+id/registerBtn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:backgroundTint="@color/white"
        android:text="Register"
        android:textColor="@color/black"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.499" />
</androidx.constraintlayout.widget.ConstraintLayout>
Log.d("REGISTER", "Setting listener");
mRegisterBtn.setOnClickListener(view -> {
    Log.d("REGISTER", "Clicked!");
    Toast.makeText(Register2.this, "Testing", Toast.LENGTH_LONG).show();
});