I have an issue with the image picker from preference activity. I created a preference and when click on it, application will go to image picker screen. But when I pick an image there is no data is retrieved.
Here is my code which call to 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;
}
});
Here is my onActivityResultFunction. The imageReturnedIntent is null and 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();
}
}
}
And here is the result
I have no idea why function onActivityResult run on this screen. My code work fine on orther project. Please help me to fix this problem. Thanks in advance.