1

我正在开发一个带有 QR 扫描仪的应用程序。

我有三项活动;“Skatte”,它有一个按钮,指向另一个名为“Skat1”的活动。“Skat1”包含一个 QR 扫描仪。当您扫描并获得阳性结果时,它会继续进行第三个活动,称为“Skat1Resultat”。

我的问题是,当您扫描二维码时,我需要完全关闭“Skat1”活动(或至少只是使其无法进入),这意味着我还需要在“Skatte”上制作按钮,它指的是“Skat1”无法点击。

我已经阅读了有关后台服务、线程和意图的信息,但我仍然不知道该怎么做。我找到了一个代码,可以在您扫描时更改第三个活动的文本,但我需要使用按钮或可点击文本来完成。

这是扫描二维码并从“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) {

 }

我虽然完成(); 可以完成工作并关闭活动(我也尝试过使用 onDestroy),但是当您单击“Skatte”上的按钮时仍然可以进入活动。

4

1 回答 1

1

您可以使用值为 false 的静态布尔标志。当您获得“resultCode == RESULT_OK”时将其设置为 true

如果标志为假,则按钮可点击 如果标志为真,则按钮不可点击。

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