1

QRスキャナーでアプリを開発しています。

私には 3 つの活動があります。「Skat1」と呼ばれる別のアクティビティを参照するボタンを持つ「Skatte」。「Skat1」にはQRスキャナーが含まれています。スキャンして肯定的な結果が得られると、「Skat1Resultat」と呼ばれる 3 番目のアクティビティに進みます。

私の問題は、QRコードをスキャンしたときに「Skat1」アクティビティを完全に閉じる(または少なくとも入力できないようにする)必要があることです。つまり、「Skatte」を参照するボタンも作成する必要があります。 「Skat1」クリック不可。

バックグラウンド サービス、スレッド、インテントについて読んだことがありますが、その方法がわかりません。スキャン時に 3 番目のアクティビティのテキストを変更できるコードを見つけましたが、ボタンまたはクリック可能なテキストで変更する必要があります。

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」のボタンをクリックすると、アクティビティに入ることができます。

4

1 に答える 1

1

値が false の静的ブール フラグを使用できます。"resultCode == RESULT_OK" を取得したら true に設定します。

フラグが false の場合、ボタンはクリック可能です。フラグが true の場合、ボタンはクリック可能ではありません。

if(flag)
{
button.setClickable(false);
}
else
{
button.setClickable(true);
}
于 2012-01-16T10:15:26.653 に答える