Я перепробовал много подходов после прочтения нескольких страниц в стеке, но я не могу заставить его работать.
У меня есть просмотр карты с onclicklistener для каждого дочернего клика (используя setSingleEvent
).
Один из детей использует сканер штрих-кода, затем передает отсканированный штрих-код другому виду деятельности (через onActivityResult
).
Но теперь мне нужен другой ребенок (просмотр карты), чтобы использовать тот же сканер штрих-кода и передать ценность для другой деятельности, а также. Я не знаю, как различать оба щелчка в методе onActivityResult
.
Однако код отлично работает для одиночной дочерней сетки, реализующей сканер штрих-кода (finali == 0)
. Но, в случае (finali == 3)
, как я могу передать onActivityResult
что-то еще?
private void setSingleEvent(GridLayout mainGrid) {
//Loop all child item of main Grid
for (int i = 0;i<mainGrid.getChildCount();i++){
CardView cardView = (CardView) mainGrid.getChildAt(i);
final int finali=i;
cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (finali == 0){
Intent intent = BarcodeReaderActivity.getLaunchIntent(getApplicationContext(), true,false);
startActivityForResult(intent, BARCODE_READER_ACTIVITY_REQUEST);
}
else if (finali == 1){
startActivity(new Intent(getApplicationContext(),AllActiveCheckInActivity.class));
}
else if (finali == 2){
Log.d(TAG, "onClick: Reports Clicked");
}
else if (finali == 3){
Intent intent = BarcodeReaderActivity.getLaunchIntent(getApplicationContext(), true,false);
startActivityForResult(intent,BARCODE_READER_ACTIVITY_REQUEST);
}
}
});
}
}
Вот мой onActivityResult
, который отлично работает, когда я использую только один из Детский просмотр карты для реализации сканера штрих-кода.
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != Activity.RESULT_OK) {
Toast.makeText(this, "error in scanning", Toast.LENGTH_SHORT).show();
return;
}
if (requestCode == BARCODE_READER_ACTIVITY_REQUEST && data != null) {
Barcode barcode = data.getParcelableExtra(BarcodeReaderActivity.KEY_CAPTURED_BARCODE);
String terminal_id = barcode.rawValue;
Intent intent1 = new Intent(this,LocationDetails.class);
intent1.putExtra("terminal_id",terminal_id);
startActivity(intent1);
}
}