Почему запускается oNACTIVELICERSULT до того, как начнется активность?
-
29-09-2019 - |
Вопрос
У меня есть приложение, которое необходимо сканировать штрих -код, чтобы получить код, прежде чем он может продолжаться. Я использую этот код, чтобы начать сканирующую деятельность:
finish = (Button) findViewById(R.id.finishButton);
finish.setOnClickListener(new OnClickListener() {
public void onClick(View viewParam) {
/*Prompt the user to scan the barcode */
new AlertDialog.Builder(Visit.this)
.setMessage("Please Scan the clients barcode to complete the visit")
.setPositiveButton("Scan Barcode", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//Start the scan application
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
startActivityForResult(intent, 0);
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//Execute some method call
Toast.makeText(Visit.this, "Scan declined...", Toast.LENGTH_SHORT).show();
}
})
.show();
/* End of Scan prompt */
}
});
Приведенный выше код устанавливает слушатель на кнопку с надписью finished
. Анкет Когда кнопка нажимается, она отображает подсказку, просящую пользователя сканировать штрих -код или отмену.
Нажав на Сканировать штрих -код Кнопка запускает новое занятие, которое запускает сканирование.
У меня есть следующий код, настроенный для прочтения результата сканирования при возврате с сканирования:
/* Return from scanning barcode */
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
;
if (resultCode == Activity.RESULT_OK && requestCode == 0) {
Bundle extras = data.getExtras();
String result = extras.getString("SCAN_RESULT");
}
Toast.makeText(Visit.this, "request code: "+requestCode+" result code = "+resultCode+ "\nRESULT_OK: "+Activity.RESULT_OK, Toast.LENGTH_SHORT).show();
}
Который очень просто (на данный момент) выводит деятельность приводит к тосту.
Проблема, которая у меня есть, заключается в том, что onActivityResult
Метод запускается, как только я нажимаю кнопку штрих -кода сканирования.
Процесс сканирования работает нормально, так как я вижу результаты сканирования в logcat. Однако, поскольку он слишком скоро запускается onActivityResult
Метод никогда не получает результат сканирования, а код результата всегда -1
Я упускаю здесь шаг? Есть ли что -нибудь добраться до onActivityResult
Чтобы подождать, пока действие фактическое завершено?
Решение
Похоже, что у сканера штрих -кода, который я использую, есть определенная ошибка для интерфейсов вкладок с одним экземпляром в манифесте, и это то, как у меня был.
Удаление условий одного экземпляра позволило мне сделать взломать его, который работает отлично.