onActivityResult가 Fragment에서 호출되지 않습니다.
이 조각을 호스팅하는 활동 onActivityResult
은 카메라 활동이 반환 될 때 호출됩니다.
내 프래그먼트는 카메라가 사진을 찍도록 전송 된 의도로 결과에 대한 활동을 시작합니다. 사진 응용 프로그램이 정상적으로로드되고 사진을 찍고 돌아옵니다. onActivityResult
그러나 명중되지 않습니다. 중단 점을 설정했지만 아무 것도 트리거되지 않습니다. 조각이 가질 수 있습니까 onActivityResult
? 제공된 기능이기 때문에 그렇게 생각합니다. 왜 이것이 트리거되지 않습니까?
ImageView myImage = (ImageView)inflatedView.findViewById(R.id.image);
myImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, 1888);
}
});
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if( requestCode == 1888 ) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
((ImageView)inflatedView.findViewById(R.id.image)).setImageBitmap(photo);
}
}
호스팅 활동은을 재정의 onActivityResult()
하지만 super.onActivityResult()
처리되지 않은 결과 코드를 호출하지 않았습니다 . 분명히 프래그먼트가 startActivityForResult()
호출 을하는 것이지만 활동은 결과를 처리하는 첫 번째 샷을 얻습니다. 이것은 조각의 모듈성을 고려할 때 의미가 있습니다. super.onActivityResult()
처리되지 않은 모든 결과를 구현 한 후에 는 조각이 결과를 처리 할 기회를 얻었습니다.
또한 @siqing 답변에서 :
조각에서 결과를 얻으려면 조각 내부 startActivityForResult(intent,111);
대신 호출해야합니다 getActivity().startActivityForResult(intent,111);
.
전화 한 것 같아요 getActivity().startActivityForResult(intent,111);
. 으로 전화해야합니다 startActivityForResult(intent,111);
.
옵션 1:
당신이 호출하는 경우 startActivityForResult()
조각에서 당신은 호출해야 startActivityForResult()
하지 getActivity().startActivityForResult()
가 조각 onActivityResult를 초래하므로 (),.
어디에서 호출 startActivityForResult()
하고 어떻게 메서드를 호출할지 확실하지 않은 경우 .
옵션 2 :
활동이의 결과를 가져 오므로 처리되지 않은 결과 코드 또는 모두에 대해 각 조각에 전파 onActivityResult()
하려면 활동 onActivityResult()
및 호출 super.onActivityResult()
을 재정의해야 합니다.
위의 두 옵션이 작동하지 않으면 확실히 작동하므로 옵션 3을 참조하십시오.
옵션 3 :
fragment에서 onActivityResult 함수로의 명시 적 호출은 다음과 같습니다.
부모 Activity 클래스에서 onActivityResult () 메서드를 재정의하고 Fragment 클래스에서 동일한 메서드를 재정의하고 다음 코드로 호출합니다.
부모 클래스에서 :
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.dualPane);
fragment.onActivityResult(requestCode, resultCode, data);
}
하위 클래스에서 :
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// In fragment class callback
}
나는 ChildFragmentManager
. 관리자는 결과를 중첩 된 조각으로 전달하지 않으므로 기본 조각에서 수동으로 수행해야합니다.
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
Fragment fragment = (Fragment) getChildFragmentManager().findFragmentByTag(childTag);
if (fragment != null) {
fragment.onActivityResult(requestCode, resultCode, intent);
}
}
활동의 조각을 모르는 경우 모두 열거하고 활동 결과 인수를 보냅니다.
// In your activity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
for (Fragment fragment : getSupportFragmentManager().getFragments()) {
fragment.onActivityResult(requestCode, resultCode, data);
}
}
FragmentActivity
requestCode
수정 된 것으로 대체 됩니다. 그 후 onActivityResult()
호출 될 때 FragmentActivity
상위 16 비트를 구문 분석하고 원래 조각의 인덱스를 복원합니다. 이 계획을보십시오 :
루트 수준에 몇 개의 조각이 있으면 문제가 없습니다. 당신이있는 경우 그러나 중첩 된 조각을 , 예를 들어 Fragment
내부에 몇 가지 탭 ViewPager
, 당신은 문제로 의지 얼굴을 보장 (또는 이미 직면).
내부에 하나의 인덱스 만 저장 되기 때문requestCode
입니다. 그것은 Fragment
내부의 색인입니다 FragmentManager
. 중첩 된 조각을 사용할 때 FragmentManager
자체 조각 목록 이있는 자식 이 있습니다. 따라서 root에서 시작하여 전체 인덱스 체인을 저장해야합니다 FragmentManager
.
이 문제를 어떻게 해결합니까? 이 게시물 에는 일반적인 해결 방법 이 있습니다 .
GitHub : https://github.com/shamanland/nested-fragment-issue
이것은 가장 인기있는 문제 중 하나입니다. 이 문제와 관련하여 많은 스레드를 찾을 수 있습니다. 그러나 그들 중 어느 것도 나에게 유용하지 않습니다.
그래서이 솔루션을 사용하여이 문제를 해결했습니다.
왜 이런 일이 발생하는지 먼저 이해합시다.
startActivityForResult
Fragment에서 직접 호출 할 수 있지만 실제로는 역학이 모두 Activity에서 처리합니다.
startActivityForResult
Fragment에서 호출하면 requestCode가 코드에 Fragment의 ID를 첨부하도록 변경됩니다. 그러면 Activity가 결과가 수신되면이 요청을 보낸 사람을 추적 할 수 있습니다.
Activity가 다시 탐색되면 결과는 원래 requestCode + Fragment의 ID로 디코딩 될 수정 된 requestCode와 함께 Activity의 onActivityResult로 전송됩니다. 그 후 Activity는 onActivityResult를 통해 Activity Result를 해당 Fragment로 보냅니다. 그리고 모두 끝났습니다.
문제는:
액티비티는 액티비티에 직접 연결된 Fragment에만 결과를 보낼 수 있지만 중첩 된 것은 아닙니다. 이것이 중첩 된 조각의 onActivityResult가 어떤 경우에도 호출되지 않는 이유입니다.
해결책:
1) 아래 코드로 Fragment에서 Intent를 시작하십시오.
/** Pass your fragment reference **/
frag.startActivityForResult(intent, REQUEST_CODE); // REQUEST_CODE = 12345
2) 이제 부모 활동 재정의 **onActivityResult()
: **
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
작동하려면 부모 활동에서 이것을 호출해야합니다.
3) 조각 호출에서 :
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
}
}
그게 다야. 이 솔루션을 사용하면 중첩 여부에 관계없이 모든 단일 조각에 적용 할 수 있습니다. 그리고 예, 모든 경우를 다룹니다! 또한 코드도 훌륭하고 깨끗합니다.
여러 중첩 된 조각의 경우 (예 : 조각에서 ViewPager를 사용하는 경우)
주요 활동 :
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
조각에서 :
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
for (Fragment fragment : getChildFragmentManager().getFragments()) {
fragment.onActivityResult(requestCode, resultCode, data);
}
}
중첩 된 조각에서
통화 활동
getParentFragment().startActivityForResult(intent, uniqueInstanceInt);
uniqueInstanceInt- 다른 조각이 대답을 처리하지 못하도록 중첩 조각 사이에서 고유 한 int로 대체합니다.
응답 받기
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == uniqueInstanceInt ) {
// TODO your code
}
}
주의
"requestCode에 대해 하위 16 비트 만 사용할 수 있음"오류를 방지하려면 uniqueInstanceInt에서 0에서 65536 사이의 숫자를 사용해야합니다.
그래도 할 수 없다면 두 가지 조언을 추가 할 수 있습니다. Manifest.xml 파일에서 콜백 할 때 호스팅 활동이 완료되지 않았는지, 시작할 활동이 표준으로 시작 모드를 가지고 있는지 확인하십시오. 자세한 내용은 다음과 같습니다.
호스팅 활동의 경우 기록 없음 속성을 false로 설정합니다.
android:noHistory="false"
활동을 시작하려면 시작 모드를 표준으로 설정하십시오.
android:launchMode="standard"
나는의 코드 외부의 블록 이동하면 나 또한 같은 문제에 직면 한 조각을 A와 유틸리티 클래스 로, parentActivity
로 전달 된 인수 ,
Intent intent = new Intent(parentActivity, CameraCaptureActivity.class);
parentActivity.startActivityForResult(intent,requestCode);
그런 다음 onActivityResult
해당 Fragment 메서드 에서 값을 얻지 못했습니다 . 나중에 인수 를 Fragment로 변경 했기 때문에 메서드의 수정 된 정의가 다음과 같이 보입니다.
Intent intent = new Intent(fragment.getContext(), CameraCaptureActivity.class);
fragment.startActivityForResult(intent,requestCode);
그 후, 나는 가치를 얻을 수 있었다 onActivityResult
온 조각
나는 또한 조각 에서이 문제를 만났습니다. 그리고 나는라는 startActivityForResult
A의 DialogFragment
.
그러나 이제이 문제가 해결되었습니다
FragmentClassname.this.startActivityForResult
..
해결책 1 :
startActivityForResult(intent, REQUEST_CODE);
대신을 호출하십시오 getActivity().startActivityForResult(intent, REQUEST_CODE);
.
해결책 2 :
때 startActivityForResult(intent, REQUEST_CODE);
호출되는 액티비티는 onActivityResult(requestCode,resultcode,intent)
호출 한 다음 호출 할 수 fragments onActivityResult()
을 통과, 여기에서 requestCode, resultCode and intent
.
제 경우에는 Android 버그 ( http://technet.weblineindia.com/mobile/onactivityresult-not-getting-called-in-nested-fragments-android/ ) 였으며 지원 FragmentActivity
을 사용하는 경우 다음 getSupportFragmentManager
대신 사용해야 합니다 getChildFragmentManager
.
List<Fragment> fragments = getSupportFragmentManager().getFragments();
if (fragments != null) {
for (Fragment fragment : fragments) {
if(fragment instanceof UserProfileFragment) {
fragment.onActivityResult(requestCode, resultCode, data);
}
}
}
요컨대
조각에서 선언하십시오 Fragment fragment = this
;
그 사용 후 fragment.startActivityForResult
.
결과는 activityResult에 반환됩니다.
당신의 조각 안에서
this.startActivityForResult(intent, REQUEST_CODE);
this
조각을 가리키는 곳 입니다. 그렇지 않으면 @Clevester가 말한 것처럼하십시오.
Fragment fragment = this;
....
fragment.startActivityForResult(intent, REQUEST_CODE);
나는 또한 전화해야했다
super.onActivityResult(requestCode, resultCode, data);
부모 활동에서 onActivityResult
작동하도록합니다.
(@Clevester의 답변 에서이 답변을 수정했습니다.)
중첩 된 조각의 경우 (예 : ViewPager를 사용하는 경우)
주요 활동에서 :
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
기본 최상위 조각 (ViewPager 조각)에서 :
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
YourFragment frag = (YourFragment) getChildFragmentManager().getFragments().get(viewPager.getCurrentItem());
frag.yourMethod(data); // Method for callback in YourFragment
super.onActivityResult(requestCode, resultCode, data);
}
YourFragment (중첩 된 조각)에서 :
public void yourMethod(Intent data){
// Do whatever you want with your data
}
이러한 답변의 대부분은 당신이 호출 할 필요가 자꾸 super.onActivityResult(...)
호스트에 Activity
당신을 위해 Fragment
. 그러나 그것은 나를 위해 일하지 않는 것 같습니다.
따라서 호스트에서 대신 Activity
호출해야 Fragments
onActivityResult(...)
합니다. 여기에 예가 있습니다.
public class HostActivity extends Activity {
private MyFragment myFragment;
protected void onActivityResult(...) {
super.onActivityResult(...);
this.myFragment.onActivityResult(...);
}
}
HostActivity
당신의 어느 시점에서 당신 this.myFragment
은 Fragment
당신이 사용 하고 있는 것을 할당해야 할 것 입니다. 또는,을 사용하여 FragmentManager
얻을하는 Fragment
대신에 당신에 대한 참조를 유지 HostActivity
. 또한을 ( null
를) 호출하기 전에 확인 하십시오 this.myFragment.onActivityResult(...);
.
public class takeimage extends Fragment {
private Uri mImageCaptureUri;
private static final int PICK_FROM_CAMERA = 1;
private static final int PICK_FROM_FILE = 2;
private String mPath;
private ImageView mImageView;
Bitmap bitmap = null;
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.activity_send_image, container, false);
final String[] items = new String[] { "From Camera", "From SD Card" };
mImageView = (ImageView)view.findViewById(R.id.iv_pic);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.select_dialog_item, items);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Select Image");
builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if (item == 0) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(), "tmp_avatar_"
+ String.valueOf(System.currentTimeMillis())
+ ".jpg");
mImageCaptureUri = Uri.fromFile(file);
try {
intent.putExtra(
android.provider.MediaStore.EXTRA_OUTPUT,
mImageCaptureUri);
intent.putExtra("return-data", true);
getActivity().startActivityForResult(intent,
PICK_FROM_CAMERA);
} catch (Exception e) {
e.printStackTrace();
}
dialog.cancel();
} else {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
getActivity().startActivityForResult(
Intent.createChooser(intent,
"Complete action using"), PICK_FROM_FILE);
}
}
});
final AlertDialog dialog = builder.create();
Button show = (Button) view.findViewById(R.id.btn_choose);
show.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Switch the tab content to display the list view.
dialog.show();
}
});
return view;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != Activity.RESULT_OK)
return;
if (requestCode == PICK_FROM_FILE) {
mImageCaptureUri = data.getData();
// mPath = getRealPathFromURI(mImageCaptureUri); //from Gallery
if (mPath == null)
mPath = mImageCaptureUri.getPath(); // from File Manager
if (mPath != null)
bitmap = BitmapFactory.decodeFile(mPath);
} else {
mPath = mImageCaptureUri.getPath();
bitmap = BitmapFactory.decodeFile(mPath);
}
mImageView.setImageBitmap(bitmap);
}
public String getRealPathFromURI(Uri contentUri) {
String [] proj = {MediaStore.Images.Media.DATA};
Cursor cursor = managedQuery(contentUri, proj, null, null,null);
if (cursor == null) return null;
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
}
onActivityResult
fragment에서 BaseActivity 를 간단히 재정의 할 수 있습니다baseActivity.startActivityForResult
.BaseActivity에서 인터페이스를 추가하고 onActivityResult를 재정의합니다.
private OnBaseActivityResult baseActivityResult; public static final int BASE_RESULT_RCODE = 111; public interface OnBaseActivityResult{ void onBaseActivityResult(int requestCode, int resultCode, Intent data); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(getBaseActivityResult() !=null && requestCode == BASE_RESULT_RCODE){ getBaseActivityResult().onBaseActivityResult(requestCode, resultCode, data); setBaseActivityResult(null); }
조각에 구현
OnBaseActivityResult
@Override public void onBaseActivityResult(int requestCode, int resultCode, Intent data) { Log.d("RQ","OnBaseActivityResult"); if (data != null) { Log.d("RQ","OnBaseActivityResult + Data"); Bundle arguments = data.getExtras(); } }
이 해결 방법이 트릭을 수행합니다.
위의 문제가 Facebook 로그인 시 발생 하면 다음과 같은 조각의 상위 활동에서 아래 코드를 사용할 수 있습니다.
Fragment fragment = getFragmentManager().findFragmentById(android.R.id.tabcontent);
fragment.onActivityResult(requestCode, resultCode, data);
또는:
Fragment fragment = getFragmentManager().findFragmentById("fragment id here");
fragment.onActivityResult(requestCode, resultCode, data);
그리고 조각에 아래 호출을 추가하십시오 ...
callbackManager.onActivityResult(requestCode, resultCode, data);
Kotlin 버전 (활동 onActivityResult ())
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
//add following lines in your activity
if(supportFragmentManager?.fragments!=null && supportFragmentManager?.fragments!!.size>0)
for (i in 0..supportFragmentManager?.fragments!!.size-1) {
val fragment= supportFragmentManager?.fragments!!.get(i)
fragment.onActivityResult(requestCode, resultCode, data)
}
}
Ollie C가 언급했듯이 중첩 조각을 사용하는 경우 onActivityResult에 반환 된 값을 사용하는 지원 라이브러리에 대한 활성 버그가 있습니다. 나는 그것을 쳤다 :-(.
requestCode! = 0 일 때 Fragment.onActivityResult가 호출되지 않음을 참조하십시오 .
나는 여기에있는 모든 답변이 해킹에 지나지 않는다는 강한 의심을 가지고 있습니다. 나는 그들 모두와 다른 많은 것을 시도했지만 항상 일종의 어리석은 문제가 있기 때문에 신뢰할 수있는 결론이 없습니다. 나는 일관되지 않은 결과에 의존 할 수 없습니다. Fragments에 대한 공식 Android API 문서를 보면 Google이 다음과 같이 명확하게 설명하는 것을 볼 수 있습니다.
조각에 포함 된 Activity에서 startActivityForResult (Intent, int)를 호출합니다.
참조 : Android Fragment API
따라서 가장 정확하고 신뢰할 수있는 접근 방식은 실제로 호스팅 활동에서 startActivityForResult () 를 호출 하고 거기에서 결과 onActivityResult () 를 처리하는 것 같습니다.
코드에 중첩 된 조각이 있습니다. super.onActivityForResult 호출이 작동하지 않습니다.
프래그먼트를 호출 할 수있는 모든 활동을 수정하거나 프래그먼트 체인의 모든 프래그먼트를 호출하는 문제를 해결하고 싶지는 않습니다.
다음은 많은 작업 솔루션 중 하나입니다. 즉시 조각을 만들고 지원 조각 관리자를 사용하여 활동에 직접 연결합니다. 그런 다음 새로 생성 된 조각에서 startActivityForResult를 호출합니다.
private void get_UserEmail() {
if (view == null) {
return;
}
((TextView) view.findViewById(R.id.tvApplicationUserName))
.setText("Searching device for user accounts...");
final FragmentManager fragManager = getActivity().getSupportFragmentManager();
Fragment f = new Fragment() {
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
startActivityForResult(AccountPicker.newChooseAccountIntent(null, null,
new String[]{"com.google"}, false, null, null, null, null), REQUEST_CODE_PICK_ACCOUNT);
}
@Override
public void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == REQUEST_CODE_PICK_ACCOUNT) {
String mEmail = "";
if (resultCode == Activity.RESULT_OK) {
if (data.hasExtra(AccountManager.KEY_ACCOUNT_NAME)) {
mEmail = data
.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
}
}
if (mActivity != null) {
GoPreferences.putString(mActivity, SettingApplication.USER_EMAIL, mEmail);
}
doUser();
}
super.onActivityResult(requestCode, resultCode, data);
fragManager.beginTransaction().remove(this).commit();
}
};
FragmentTransaction fragmentTransaction = fragManager
.beginTransaction();
fragmentTransaction.add(f, "xx" + REQUEST_CODE_PICK_ACCOUNT);
fragmentTransaction.commit();
}
내 문제는 호스트 활동과 관련하여 android:launchMode="standard"
내가 임시로 제거 한 세트로 발견했습니다 .
중첩 조각을 사용하는 경우에도 작동합니다.
getParentFragment().startActivityForResult(intent, RequestCode);
이 외에도 super.onActivityResult
부모 활동에서 호출 onActivityResult
하고 조각 의 메서드를 채워야합니다 .
다른 답변에 아직 설명되지 않은 또 다른 사용 사례 :
onActivityResult()
다음을 사용할 때 조각에서 선언 된 것은 호출되지 않습니다 exception.startResolutionForResult()
.
if (exception is ResolvableApiException) {
exception.startResolutionForResult(activity!!, MY_REQUEST_CODE)
}
이 경우 exception.startResolutionForResult()
조각의 startIntentSenderForResult()
다음으로 대체하십시오 .
if (exception is ResolvableApiException) {
startIntentSenderForResult(exception.resolution.intentSender, MY_REQUEST_CODE, null, 0, 0, 0, null)
}
가장 간단한 방법 중 하나는 프래그먼트에서 활동을 시작하는 것입니다.
startActivity(ActivityName);
그런 다음 startActivityForResult(intent,"1");
활동에서 전화 를 추가 onActivityResult
하고 활동에 추가 하십시오.
startActivityForResult(intent,"1");
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.dualPane);
fragment.onActivityResult(requestCode, resultCode, data);
// perform other activity result like fetching from Uris or handling cursors
finish(); // finish the activity will get to back to your fragment.
}
해결 방법을 만듭니다.
public static Fragment _tempFragment = null;
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(_tempFragment != null)
_tempFragment.onActivityResult(requestCode, resultCode, data);
}
Fragment에서 startActivityResult 전에
MainActivity._tempFragment = this;
onActivityResult <-후 조각
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Do your job
{
}
MainActivity._tempFragment = null;
}
조각에 대해 아래 코드를 사용하십시오.
@Override
public void onOtherButtonClick(ActionSheet actionSheet, int index) {
if (index == 1)
{
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setType("image/*");
startActivityForResult(Intent.createChooser(intent,
"Select Picture"), 1);
}
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == 1) {
if (requestCode == 1) {
Uri selectedImageUri = data.getData();
//selectedImagePath = getPath(selectedImageUri);
}
}
}
onActivityResult는 부모를 호출하지 않고 호출합니다.
참고 URL : https://stackoverflow.com/questions/6147884/onactivityresult-is-not-being-called-in-fragment
'Development Tip' 카테고리의 다른 글
C ++ 프로그래머가 'new'사용을 최소화해야하는 이유는 무엇입니까? (0) | 2020.09.28 |
---|---|
JavaScript에서 호출자 함수를 어떻게 찾습니까? (0) | 2020.09.28 |
REST API / 웹 서비스 보안을위한 모범 사례 (0) | 2020.09.28 |
Bash 스크립트에서 인수를 반복하는 방법 (0) | 2020.09.28 |
Java에서 문자열이 숫자인지 확인하는 방법 (0) | 2020.09.28 |