Поворачивание кнопки, недоступной при сканировании QR-кода - PullRequest
1 голос
/ 16 января 2012

Я разрабатываю приложение с QR-сканером.

У меня есть три занятия;«Skatte», у которого есть кнопка, которая относится к другой деятельности под названием «Skat1».«Skat1» содержит QR-сканер.Когда вы сканируете и получаете положительный результат, он переходит к третьей активности под названием "Skat1Resultat".

Моя проблема в том, что мне нужно полностью закрыть действие "Skat1" (или, по крайней мере, просто сделать невозможным ввод), когда вы отсканировали QR-код, а это значит, что мне также нужно включить кнопку«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) {

 }

Я думал, что закончить ();может выполнить работу и закрыть действие (я также пытался с onDestroy), но все еще возможно войти в действие, когда вы нажимаете кнопку «Skatte».

1 Ответ

1 голос
/ 16 января 2012

Вы можете использовать статический логический флаг со значением false.Установите значение true, когда вы получите «resultCode == RESULT_OK»

Если флаг имеет значение «ложь», то кнопка активируется, если флаг имеет значение «истина», то кнопка не активируется.

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