【问题标题】:Turning a button unclickable when scanning a QR code扫描二维码时无法点击按钮
【发布时间】:2012-01-16 09:58:03
【问题描述】:

我正在开发一个带有 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) {

 }

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

【问题讨论】:

    标签: android qr-code background-service


    【解决方案1】:

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

    如果标志为假,那么按钮是可点击的 如果标志为真,则该按钮不可点击。

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

    【讨论】:

      猜你喜欢
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多