Android首选项startActivityForResult始终返回null数据

时间:2015-07-11 17:12:02

标签: android android-intent android-activity android-preferences

我的偏好活动中的图片选择器存在问题。我创建了一个首选项,当点击它时,应用程序将转到图像选择器屏幕。但是当我选择图像时,没有检索到数据。

这是我的代码,它调用startActivityForResult

Preference chooseImageFromGal = (Preference) findPreference("pref_key_background_device");
    chooseImageFromGal.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            // TODO Auto-generated method stub
            Intent intent = new Intent();
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            SettingActivity.this.startActivityForResult(Intent.createChooser( intent, "Select Picture"), IMAGE_FROM_DEVICE);
            return true;
        }
    });

这是我的onActivityResultFunction。 imageReturnedIntent为null,resultCode = 0。

protected void onActivityResult(int requestCode, int resultCode, 
           Intent imageReturnedIntent) {
        super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
        if(imageReturnedIntent == null)
            Toast.makeText(SettingActivity.this, "null", Toast.LENGTH_SHORT).show();
        if(requestCode == IMAGE_FROM_DEVICE) {

            if(resultCode == RESULT_OK){  
                Uri selectedImage = imageReturnedIntent.getData();
                String[] filePathColumn = {MediaStore.Images.Media.DATA};

                Cursor cursor = getContentResolver().query(
                                   selectedImage, filePathColumn, null, null, null);
                cursor.moveToFirst();

                int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                String filePath = cursor.getString(columnIndex);
                cursor.close();

                Toast.makeText(SettingActivity.this, "ok", Toast.LENGTH_SHORT).show();
            }
        }
    }

这是结果

enter image description here

我不知道为什么onActivityResult函数在这个屏幕上运行。我的代码在其他项目上运行良好。请帮我解决这个问题。提前谢谢。

0 个答案:

没有答案