Java 为什么按钮需要点击两次才能工作
我已经创建了这个应用程序,我有一个按钮,在应用程序中的一切都是好的,除了一个事实,如果我想让按钮工作,我必须按下它两次,而不是一次像假设。 下面是一段代码:Java 为什么按钮需要点击两次才能工作,java,android,button,Java,Android,Button,我已经创建了这个应用程序,我有一个按钮,在应用程序中的一切都是好的,除了一个事实,如果我想让按钮工作,我必须按下它两次,而不是一次像假设。 下面是一段代码: //CODE: public void INCASEOFCLICK(View view) { Button B = (Button) findViewById(R.id.B); B.setOnClickListener(new View.OnClickListener() { @Override
//CODE:
public void INCASEOFCLICK(View view) {
Button B = (Button) findViewById(R.id.B);
B.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EditText A = (EditText) findViewById(R.id.A);
TextView C = (TextView) findViewById(R.id.C);
String AA=A.getText().toString();
if(A.length()>0){
C.setText(AA);
}else{
Toast.makeText(getApplicationContext(), "TRY AGAIN", Toast.LENGTH_LONG).show();
}
}
});
}
您所做的是在第一次单击时设置clicklistener,在第二次单击时获得响应。通常,如果您在
onCreate()
中编写下面提到的代码,您的按钮将按预期工作
Button B = (Button) findViewById(R.id.B);
B.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EditText A = (EditText) findViewById(R.id.A);
TextView C = (TextView) findViewById(R.id.C);
String AA=A.getText().toString();
if(A.length()>0){
C.setText(AA);
}else{
Toast.makeText(getApplicationContext(), "TRY AGAIN",
Toast.LENGTH_LONG).show();
}
}
});
INCASEOFCLICK
已经是按钮的onClickListener。这远远不是onClickListener的推荐方法。首先在CaseofClick中有一个click listener。这不是应该怎么做的,请参考官方文档或优秀的在线教程。将内部onClick中的所有逻辑移到INCASEOFCLICK
中,我做了另一个onClick侦听器,因为当我只留下一个时,ClickListner只工作一次。这是因为您对按钮B
的定义/实例化是错误的。一旦你点击它,你将再次实例化它,然后它就不会被分配任何clicklistener。请参阅@AndroidWarrior的回答,我不知道怎么做。@user3775508只需将上述代码复制到onCreate()
方法中,然后删除与按钮相关的所有其他代码,它就会正常工作。谢谢。它工作得很好,不需要onCreate(),只需删除第4、5、6行即可。谢谢