2016-10-26 10 views
0

私のデザインには助けが必要です...間違っているようです。 BaseActivityにはViewPagerTabLayoutが含まれています。 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; 
     } 
    } 
} 
は、

答えて

0

変更コード startActivityForResult(cameraActivity、1); から getActivity()。startActivityForResult(cameraActivity、1);

関連する問題