【发布时间】:2014-06-25 14:04:31
【问题描述】:
我已经创建了这个有一个按钮的应用程序,应用程序中的一切都很好,除了如果我想让按钮工作我必须按两次,而不是像想象的那样按一次。 这是一段代码:
//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();
}
}
});
}
【问题讨论】:
-
INCASEOFCLICK已经是您的 Button 的 onClickListener。 -
这与onClickListeners的推荐方法相差甚远。首先你有一个点击监听器
INCASEOFCLICK,然后在里面你再次setOnClickListener到按钮。这不是应该的,请参考官方文档或在线好的教程。 -
将你所有的逻辑都移到
INCASEOFCLICK987654325@里面的onClick里面 -
我做了另一个 OnClickListener,因为当我只留下一个时,ClickListner 只工作一次。
-
那是因为您对
Button B的定义/实例化是错误的。一旦您单击它,您将再次实例化它,然后没有分配任何 clicklistener。参考@AndroidWarrior的回答