2 一个按钮的 OnClick 侦听器无法解析 OnClickListener

2 OnClickListeners for one Button cannot resolve the OnClick Listener

我在我的 OnCreate 中添加了以下代码行 method.My 目标是将一个按钮分配给两个功能并交替调用它们。第一次点击按钮的文本应该被改变并且 EditText 应该是可编辑的。第二次单击时,字段不应再可编辑,按钮文本应更改为第一个选项。我已经实现了两个 OnClickListeners,程序结构对我来说似乎是合乎逻辑的。不过,我收到一条错误消息; "Cannot resolve symbol onClickListener"。我该怎么做才能完成上述设置 运行?感谢所有回复!

private Button ProfilUpdate;
ProfilUpdate=findViewById(R.id.buttonProfilUpdate);
.
.
.
.

     final ProfilUpdate.OnClickListener listener2 = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ProfilUpdate.setText("Profil bearbeiten");
                profilVorname.setFocusable(false);
            }
        };
        ProfilUpdate.OnClickListener listener1 = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ProfilUpdate.setText("Änderungen speichern");
                profilVorname.setFocusable(true);
                v.setOnClickListener(listener2);
            }
        };
        ProfilUpdate.setOnClickListener(listener1);

一次只能在一个视图上有一个点击侦听器。使用 ProfileUpdate.setOnClickListener(listener object)。要获得 alternate 功能,您可以定义一个布尔值来跟踪状态,例如,在 Boolean shouldChangeText = true 顶部定义一个 class 变量,在 onClick ] body 在监听器中,做类似的事情:

If (shouldChangeText) { // change the text
 }
else { // clear the text
}
shouldChangeText = !shouldChangeText

你为什么不创建一个 boolean isFirstClick = true ,然后在同一个 listener

中检查它
ProfilUpdate.OnClickListener listener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(isFirstClick){
                //Do the job for the first click process 
                isFirstClick= false;
                }else {
                //Do the job for the second click process
                isFirstClick= true;
                }

            }
        };
        ProfilUpdate.setOnClickListener(listener);