Не могу запустить сканер ZXing - PullRequest
0 голосов
/ 04 мая 2019

Я разрабатываю приложение для 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)' для ссылки на пустой объект

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...