Я разрабатываю приложение для Android, которое использует сканер штрих-кода ZXing для разблокировки уровня теста.
Мой MainActivity предоставляет выбор для сложности теста. Я хочу сделать так, чтобы при сканировании QR-кода MainActivity проверяла, действителен ли QR-код, и переходите к Викторине. У меня есть поле в классе public static String qrCodeResultValue
MainActivity.class:
if(difficulty.equals(Question.DIFFICULTY_HARD) || difficulty.equals(Question.DIFFICULTY_EXPERT)) {
//this doesn't open the ZXing scanner, but proceeds the next line
startActivity(new Intent(getApplicationContext(), ScanCodeActivity.class));
//MainActivity.qrCodeResultValue here is null (the source of the error)
if(MainActivity.qrCodeResultValue.equals(QuizUtils.CODE_HARD) || MainActivity.qrCodeResultValue.equals(QuizUtils.CODE_EXPERT)){
Intent intent = new Intent(MainActivity.this, QuizActivity.class);
intent.putExtra(EXTRA_DIFFICULTY, difficulty);
startActivityForResult(intent, REQUEST_CODE_QUIZ);
}else {
Toast.makeText(this, "Invalid QR Code for this difficulty", Toast.LENGTH_LONG);
}
}else{
Intent intent = new Intent(MainActivity.this, QuizActivity.class);
intent.putExtra(EXTRA_DIFFICULTY, difficulty);
startActivityForResult(intent, REQUEST_CODE_QUIZ);
}
Предполагается, что ScanCodeActivity.class
запускает сканер QR-кода, но мой код там даже не вводится.
ScanCodeActivity.class
public class ScanCodeActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler {
ZXingScannerView scannerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
scannerView = new ZXingScannerView(this);
setContentView(scannerView);
}
@Override
public void handleResult(Result result) {
MainActivity.qrCodeResultValue = result.getText();
onBackPressed();
}
}
Ошибка:
Попытка вызвать виртуальный метод 'boolean java.lang.String.equals (java.lang.Object)' для ссылки на пустой объект