AppA와 AppB의 두 응용 프로그램간에 데이터를주고받습니다. 내 AppA에는 AppAFragment가 포함 된 AppAActivity.java가 있습니다. 이 프래그먼트가 AppB를 열려면 AppBctivity.java를 열고 Login 프래그먼트를 열고 그 다음 Payment 프래그먼트를 누른 다음 Acknowledgment 프래그먼트를 열어 보겠습니다. 이 Acknowledgment 프래그먼트는 "다음"버튼을 가지고 있으며, 클릭하면 setResult 메소드가 호출되어 결과를 수신하도록 AppAFragment에 경고합니다. 그러나 결과를 수신하는 AppAFragment의 onActivityResult 메소드는 다시 호출되지 않습니다.onActivityResult가 다시 호출되지 않았습니다.
AppAFragment.java
@Override
public void openUrl() {
Intent intent = getBaseParentActivity().getPackageManager()
.getLaunchIntentForPackage(DataConstants.SAMPLE_RIB_PACKAGE);
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(DataConstants.TRANSACTION_REFERENCE, getLinkWS()
.getTransRef());
intent.putExtra(DataConstants.TRANSACTION_AMOUNT, mAmount.getText()
.toString());
intent.setType(MediaType.TEXT_PLAIN);
startActivityForResult(intent,
DataConstants.CODE_APP_TO_APP_PAYMENT);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK
&& requestCode == DataConstants.CODE_APP_TO_APP_PAYMENT) {
Log.v("Test", "Test");
Toast.makeText(getBaseParentActivity(),
data.getStringExtra(DataConstants.BANK_REFERENCE_NO),
Toast.LENGTH_SHORT).show();
}
}
AcknowledgementFragment.java
@Override
public void buttonNext() {
Intent intent = new Intent();
intent.putExtra(DataConstants.BANK_REFERENCE_NO, infoModel.getBankRef());
getActivity().setResult(Activity.RESULT_OK, intent);
getActivity().finish();
}
대단히 감사합니다!
이 ** AppAFragment **에 ** AppAActivity **에서'onActivtyResult'를 이동하려고이 라인을 추가하려고합니다. Android에서 활동은 의도를 전달하는 주요 흐름입니다. 인 텐트는 프래그먼트를 실행하는 Activity를 시작할 수 있으므로 최상의 코딩 퍼포먼스를 위해서는 모든 Intent 항목을 Activities가 보내고 받아야합니다 – drees