這段代碼是從我的活動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