2012-01-16 5 views
1

QR 스캐너로 앱을 개발 중입니다.QR 코드를 스캔 할 때 버튼을 클릭 취소 할 수없는 경우

세 가지 활동이 있습니다. "Skatte"라는 다른 활동을 나타내는 버튼이있는 "Skatte". "Skat1"에는 QR 스캐너가 포함되어 있습니다. 스캔하여 긍정적 인 결과를 얻으면 "Skat1Resultat"이라는 세 번째 활동으로 이동합니다.

내 문제는 QR 코드를 스캔 할 때 "Skat1"활동을 완전히 닫아야한다는 것입니다. (또는 적어도 입력이 불가능하도록 만드십시오). 즉, "Skatte" "는"Skat1 "을 클릭 할 수 없음을 나타냅니다.

백그라운드 서비스, 스레드 및 인 텐트에 대해 읽었지만 여전히 수행 방법을 알 수 없습니다. 스캔 할 때 세 번째 액티비티에서 텍스트를 변경할 수있는 코드를 찾았지만 버튼이나 클릭 가능한 텍스트를 사용해야합니다.

QR 코드가 스캔되어 "Skat1"에서 "Skat1Resultat"로 이동하는 코드입니다.

public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
if (requestCode == 0) { 
if (resultCode == RESULT_OK) { 
String contents = intent.getStringExtra("SCAN_RESULT"); 
String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); 
// Handle successful scan 

    Toast toast = Toast.makeText(Skat1.this, contents, 9000); 
    toast.show(); 
    startActivity(new Intent(Skat1.this, Skat1Resultat.class)); 
    finish(); 
    } 


} else if (resultCode == RESULT_CANCELED) { 

} 

그래도 finish(); 작업을 수행하고 활동을 닫을 수 있습니다 (onDestroy에서도 시도해 보았습니다).하지만 "Skatte"버튼을 클릭하면 활동을 입력 할 수 있습니다.

답변

1

값이 false 인 정적 부울 플래그를 사용할 수 있습니다. 플래그는 플래그가 다음 버튼을 클릭 할 수없는 사실이라면 버튼이 클릭 할 다음 false 인 경우 "의 resultCode == RESULT_OK"

을 얻을 때 는 true로 설정합니다.

if(flag) 
{ 
button.setClickable(false); 
} 
else 
{ 
button.setClickable(true); 
}