0
안녕하세요, 내 안드로이드 앱에서 선택할 의도로 이미지를 열려고합니다.인 텐트 선택기에서 이미지를 선택하면 안드로이드 앱이 다운 됨
또 다른 클래스에서는이 함수를 사용하여 대화 상자를 열고 IageView를 클릭하여 그림을 선택합니다.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (imageUploadHandler != null){
imageUploadHandler.handleResult(this, data);
}
}
}
내가 대화 상자의 이미지 뷰를 클릭
, 의도가 보여, 나는 다음 이미지를 선택할 수 있습니다public void OpenImageUploadDialog() {
final NavigationScreen context = (NavigationScreen) img.getContext();
final Dialog imageUploadDialog = new Dialog(context);
imageUploadDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
imageUploadDialog.setContentView(R.layout.dialog_upload_image);
final TextView avatarStatus = (TextView) imageUploadDialog.findViewById(R.id.avatar_status);
final ImageView avatar = (ImageView) imageUploadDialog.findViewById(R.id.avatar);
Button addButton = (Button) imageUploadDialog.findViewById(R.id.save);
Button cancelButton = (Button) imageUploadDialog.findViewById(R.id.cancel);
dialog_img = avatar;
dialog_status = avatarStatus;
avatar.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
Intent image_chooser = Intent.createChooser(intent, context.getString(R.string.select_picture));
context.startActivityForResult(image_chooser, SELECT_PICTURE);
}
});
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isReady) {
if (Network.isNetworkAvailable(context)) {
imageUploadDialog.dismiss();
} else {
Views.ShowErrorMessage(context, context.getString(R.string.no_internet));
}
} else {
Views.ShowErrorMessage(context, context.getString(R.string.select_image_first));
}
}
});
cancelButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
imageUploadDialog.dismiss();
}
});
imageUploadDialog.show();
}
그런 다음 활동 클래스에,이 있습니다. 최대한 빨리 앱으로 돌아가지만 활동은 흰색 화면이고 2 초 후에 충돌합니다. 로그는 다음과 같습니다.
06-20 18:24:02.465: E/AndroidRuntime(9254): FATAL EXCEPTION: main
06-20 18:24:02.465: E/AndroidRuntime(9254): java.lang.RuntimeException: Unable to resume activity {android.arin/android.arin.NavigationScreen}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=Intent { dat=content://media/external/images/media/11738 (has extras) }} to activity {android.arin/android.arin.NavigationScreen}: java.lang.NullPointerException
06-20 18:24:02.465: E/AndroidRuntime(9254): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2639)
06-20 18:24:02.465: E/AndroidRuntime(9254): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2667)
06-20 18:24:02.465: E/AndroidRuntime(9254): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2140)
06-20 18:24:02.465: E/AndroidRuntime(9254): at android.app.ActivityThread.access$700(ActivityThread.java:143)
06-20 18:24:02.465: E/AndroidRuntime(9254): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241)
06-20 18:24:02.465: E/AndroidRuntime(9254): at android.os.Handler.dispatchMessage(Handler.java:99)
06-20 18:24:02.465: E/AndroidRuntime(9254): at android.os.Looper.loop(Looper.java:137)
06-20 18:24:02.465: E/AndroidRuntime(9254): at android.app.ActivityThread.main(ActivityThread.java:4950)
06-20 18:24:02.465: E/AndroidRuntime(9254): at java.lang.reflect.Method.invokeNative(Native Method)
06-20 18:24:02.465: E/AndroidRuntime(9254): at java.lang.reflect.Method.invoke(Method.java:511)
06-20 18:24:02.465: E/AndroidRuntime(9254): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
06-20 18:24:02.465: E/AndroidRuntime(9254): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
06-20 18:24:02.465: E/AndroidRuntime(9254): at dalvik.system.NativeStart.main(Native Method)
06-20 18:24:02.465: E/AndroidRuntime(9254): Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=Intent { dat=content://media/external/images/media/11738 (has extras) }} to activity {android.arin/android.arin.NavigationScreen}: java.lang.NullPointerException
06-20 18:24:02.465: E/AndroidRuntime(9254): at android.app.ActivityThread.deliverResults(ActivityThread.java:3205)
06-20 18:24:02.465: E/AndroidRuntime(9254): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2626)
06-20 18:24:02.465: E/AndroidRuntime(9254): ... 12 more
06-20 18:24:02.465: E/AndroidRuntime(9254): Caused by: java.lang.NullPointerException
06-20 18:24:02.465: E/AndroidRuntime(9254): at android.arin.NavigationScreen.onActivityResult(NavigationScreen.java:181)
06-20 18:24:02.465: E/AndroidRuntime(9254): at android.app.Activity.dispatchActivityResult(Activity.java:5361)
06-20 18:24:02.465: E/AndroidRuntime(9254): at android.app.ActivityThread.deliverResults(ActivityThread.java:3201)
06-20 18:24:02.465: E/AndroidRuntime(9254): ... 13 more
누구에게이 문제가 있습니까?
감사
예 181은 그렇습니다. 또한 위 코드를 업데이트했습니다. null인지 확인합니다. 그러나 그것은 도움이되지 못했습니다. 그럼 그것은 크래쉬가 아니었지만 화면은 여전히 흰색으로 바뀌었고 대화 상자가 닫힌 상태로 돌아가서'imageUploadHandler.handleResult (this, data); '를 실행하지 못했습니다 ... 디버깅을 시도했지만 디버거가 끊어졌습니다 내가 그림을 선택하면 (즉, 다음 단계를 클릭 할 수 없음). 나는 super.onActivityResult (requestCode, resultCode, data);에 중단 점을 두었습니다. 그러나 그곳에서 멈추지 않았습니다 ... – omega
전화를 다시 시작하면 문제가 해결되는 것 같습니다 ... – omega