私のデザインには助けが必要です...間違っているようです。 BaseActivity
にはViewPager
とTabLayout
が含まれています。 ViewPager
の各項目はFragment
です。setResultでアクティビティからのデータを送信していません
私の断片の1つは、zxing minimal library
を使用してQRコードをスキャンする新しいアクティビティを開きます。
QRコードがキャプチャされると、私はBaseActivityにQRコードデータを送り返す必要があります。 startActivityForResult()
とonActivityResult()
を使用していると聞きましたが、動作しません。
また、動作するときに、キャプチャされたデータでフラグメントを更新する必要があります。 ここにいくつかのコード(必要であれば、私はさらに提供することができます)です。
QRCodeListFragment
//qrCodeList is an ArrayList<String>
if (cameraButton != null) {
cameraButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent cameraActivity = new Intent(getActivity(), CameraActivity.class);
cameraActivity.putExtra("QRCODE_LIST", qrCodeList);
cameraActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityForResult(cameraActivity, 1);
}
});
}
CameraActivity
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanResult = IntentIntegrator
.parseActivityResult(requestCode, resultCode, intent);
if (scanResult != null) {
qrCodeList.add(scanResult.getContents());
onBackPressed();
}
}
@Override
public void onBackPressed() {
Intent intent = new Intent();
intent.putExtra("QRCODE_LIST", qrCodeList);
setResult(RESULT_OK, intent);
finish();
}
BaseActivity
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case (1) : {
if (resultCode == RESULT_OK) {
mViewPager.setCurrentItem(QRCODE_POSITION, true);
// HOW TO UPDATE QRCODELISTFRAGMENT WITH DATA?
}
break;
}
}
}
は、