我的偏好活动中的图片选择器存在问题。我创建了一个首选项,当点击它时,应用程序将转到图像选择器屏幕。但是当我选择图像时,没有检索到数据。
这是我的代码,它调用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();
}
}
}
这是结果
我不知道为什么onActivityResult函数在这个屏幕上运行。我的代码在其他项目上运行良好。请帮我解决这个问题。提前谢谢。