나는 OnClickListener가있는 버튼을 가지고 있습니다. 설명을 위해 모달 대화 상자를 표시하는 버튼을 고려하십시오.버튼을 빠르게 누르기 다루기
public class SomeActivity ... {
protected void onCreate(Bundle state) {
super.onCreate(state);
findViewById(R.id.ok_button).setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
// This should block input
new AlertDialog.Builder(SomeActivity.this)
.setCancelable(true)
.show();
}
});
}
정상적인 사용 환경에서는 경고 대화 상자가 나타나고 추가 입력을 차단합니다. 사용자는 버튼을 다시 탭하기 전에 대화 상자를 닫아야합니다.
하지만 대화 상자가 나타나기 전에 버튼의 OnClickListener가 두 번 호출되는 경우가 있습니다. 버튼을 빠르게 탭하여 이것을 쉽게 복제 할 수 있습니다. 일반적으로 여러 번 시도해야하지만 조만간 대화 상자에서 입력을 차단하기 전에 onClick (...) 호출을 여러 번 트리거합니다.
Motorola Droid 휴대 전화의 Android 2.1에서이 동작을 볼 수 있습니다. 마켓에서 4 가지 오류보고가 접수되었습니다. 이는 가끔씩 사람들에게 발생하는 것입니다.
OnClickListeners의 기능에 따라 모든 종류의 혼란이 발생합니다. 차단 대화 상자가 첫 번째 탭 이후 실제로 입력을 차단하도록 어떻게 보장 할 수 있습니까?
onClick() 외부에서 AlertDialog를 생성하고 onClick() 내에서 show()를 호출 해 보았습니까? – jfpoilpret