Fragment 中如何接收Activity中的 onActivityResult的结果呢,很简单:
第一步:在Activity中拿到当前的Fragment 对象,然后进行传递到Fragment
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
try {
FragmentBase f = (FragmentBase) getSupportFragmentManager().getFragments().get(mViewPager.getCurrentItem());
f.onActivityResult(requestCode, resultCode, data);
} catch (Exception e) {
}
}
第二步:在Activity中接收即可
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_MAP) {
// 地图定位
locationResult(data);
}
super.onActivityResult(requestCode, resultCode, data);
}
/**地图定位*/
private void locationResult(Intent data) {
//纬度
double latitude = data.getDoubleExtra("latitude", 0);
//经度
double longitude = data.getDoubleExtra("longitude", 0);
String locationAddress = data.getStringExtra("address");
if (locationAddress != null && !locationAddress.equals("")) {
//toggleMore(more);
//sendLocationMsg(latitude, longitude, "", locationAddress);
MyToast.show(getActivity(), "您当前的位置 :" + locationAddress + " 经纬度: " + longitude + "," + latitude + "(" + ")", Toast.LENGTH_LONG);
} else {
String st = getResources().getString(R.string.unable_to_get_loaction);
MyToast.show(getActivity(), st, Toast.LENGTH_SHORT);
}
}