Note that there are some explanatory texts on larger screens.

plurals
  1. POstartActivityForResult does not returns anything (Image Picking from a PreferenceActivity)
    primarykey
    data
    text
    <p>I have a "Select image" in a PreferenceActivity:</p> <pre><code>Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(i, IMAGE_SELECT); </code></pre> <p>But when I pick an image from Gallery, it does not return anything to my PreferenceActivity's onActivityResult:</p> <pre><code>@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Toast.makeText(getApplicationContext(), "THIS TOAST IS NOT SHOWING", Toast.LENGTH_LONG).show(); } </code></pre> <p>What more I need to do? Add something to the manifest? Is it impossible?</p> <p>I hope you can help me, thanks ;)</p> <p><strong>EDIT:</strong></p> <p>This is my "whole" class (omited irrelevant code):</p> <pre><code>package com.xuso.myapp; import yuku.ambilwarna.AmbilWarnaDialog; import yuku.ambilwarna.AmbilWarnaDialog.OnAmbilWarnaListener; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.ListPreference; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceActivity; import android.provider.MediaStore; import android.view.LayoutInflater; import android.view.View; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView; import android.widget.Toast; public class Settings extends PreferenceActivity { protected static final int NEED_RESTART = 2; protected static final int IMAGE_SELECT = 3; private int bg_color; //There are a lot more private Context context = this; private int result = RESULT_CANCELED; private SharedPreferences sp; private SharedPreferences.Editor editor; Preference pref_bg_color; //There are a lot more public void getPrefs(){ sp = getSharedPreferences("myapp_prefs", Activity.MODE_PRIVATE); editor = sp.edit(); bg_color = sp.getInt("pref_bg_color", 0xff000000); //... and the rest of the GETs. } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.settings); getPrefs(); //A lot of declarations of listeners when Preferences pressed //... //... pref_bg_image.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(i, IMAGE_SELECT); return false; } }); //... //... //More and more declarations of Preferences. } //This is for returning results with preferences changes to the Main activity private void getBackAndCommit() { Intent intent= getIntent(); setResult(result, intent); finish(); overridePendingTransition(0, 0); } //Commit changes on back pressed public void onBackPressed () { getBackAndCommit(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch(requestCode) { case IMAGE_SELECT: if(resultCode == RESULT_OK){ Uri selectedImage = data.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(); Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath); } } } } </code></pre> <p>And this is my manifest:</p> <pre><code>&lt;application android:icon="@drawable/myapp_icon" android:label="@string/app_name" &gt; &lt;activity android:name=".Main" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar" &gt; &lt;intent-filter&gt; &lt;action android:name="android.intent.action.MAIN" /&gt; &lt;category android:name="android.intent.category.LAUNCHER" /&gt; &lt;/intent-filter&gt; &lt;/activity&gt; &lt;activity android:name=".Settings" android:label="@string/app_name" &gt; &lt;/activity&gt; &lt;/application&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload