[英]onActivityResult doesn't get called within Dialog Fragment
因此,我已經閱讀了一些有關此的主題,但無法使它正常工作。 基本上,我有一個對話框,用戶可以在其中選擇拍攝新圖片或從圖庫中選擇圖片。 這是代碼:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setCancelable(true)
.setItems(R.array.galeria_camera_array, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int userChoice) {
if (userChoice == 1) {
// take photo
}
if (userChoice == 0) {
Intent galleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(galleryIntent, 1);
}
}
});
return builder.create();
}
然后,onActivityResult:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//choose file from gallery
}
有人可以幫忙嗎? 在我不得不重新閱讀10頁的理論之前,我對這種事情(onResult)還是很陌生。 謝謝。
解決此問題的簡單方法是將片段的onActivityResult
移動到活動中,或者可以使用活動的onActivityResult
調用片段中的方法。
我看了看我的代碼,顯然我設法通過從片段中調用this.getActivityForResult
來解決此問題,然后結果返回到片段中,但是我對你說老實話:我不記得寫這個。
嘗試在觸發對話框片段的活動中實施類似的操作:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.myFragmentId);
fragment.onActivityResult(requestCode, resultCode, data);
下划線活動將接收onActivityResult,因此您應該能夠將其“指向”對話框片段的onActivityResult。
好的,這兩件事使它起作用了:
getActivity().startActivityForResult(galleryIntent, 1);
您必須添加getActivity()
onActivityResult()
。 多謝你們!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.