I making demo application FragmentActivity between two fragments such as One is normal extends Fragment and Second is extends DialogFragment.
I will not handle in onActivityResult() method in First fragment because first fragment open dialog fragment ok press then access for that method.
Kindly help me Thanks for Advance
First Fragment Code,
public class MyListFragment extends Fragment {
View mView;
protected static final int REQ_CODE = 1010;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.list_fragment, container, false);
return view;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
if (requestCode == REQ_CODE) {
// Access here
}
}
super.onActivityResult(requestCode, resultCode, data);
}
}
I found answer MYSELF,
This is how I handle communication between fragment and dialog fragment,
MyListFragment Code,
public class MyListFragment extends Fragment {
View mView;
protected static final int REQ_CODE = 1010;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mView = inflater.inflate(R.layout.list_fragment, container, false);
Button mButton = (Button) mView.findViewById(R.id.button);
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
MyDialogFragment dialog = new MyDialogFragment();
dialog.setTargetFragment(MyListFragment.this, REQ_CODE);
dialog.show(getFragmentManager(), "dialog");
}
});
return view;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
if (requestCode == REQ_CODE) {
// Access here
Log.i(TAG, "onActivityResult Access here method");
}
}
super.onActivityResult(requestCode, resultCode, data);
}
}
DialogFragment code,
public class MyDialogFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage("My dialog message")
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
notifyToTarget(Activity.RESULT_OK);
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
notifyToTarget(Activity.RESULT_CANCELED);
}
});
return builder.create();
}
private void notifyToTarget(int code) {
Fragment targetFragment = getTargetFragment();
if (targetFragment != null) {
targetFragment.onActivityResult(getTargetRequestCode(), code, null);
}
}
}
This code i hope help to us.