这段代码是从我的活动onCreate()
叫:为什么setOnClickListener调用两次?
private void setOnClickListeners() {
mLoginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onSignClicked();
}
});
mForgotYourText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onRemindClicked();
}
});
..
}
mLoginButton
是一个TextView一个的LinearLayout里面
mForgotYourText
是一个TextView
在调试时我看到mLoginButton.setOnClickListener
分配被称为两次。
而mForgotYourText.setOnClickListener
只按预期调用一次赋值。为什么不同?是因为eventHandling传播吗?
如果是这样 - 为什么public void onClick(View v)
无法返回布尔值来停止传播?
一个更奇怪的是,该代码被称为3倍,
同一元素mLoginButton
的工作:
mPhoneNumberField.setInputTextOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
setResult(RESULT_CANCELED);
finish();
return true;
}
});
确保您没有设置安卓的onClick =“onSignClicked()”上mLoginButton通过XML – JafarKhQ