0

I want to fill a MultiSelectListPreference with DB values. When I call

MultiSelectListPreference list = (MultiSelectListPreference)findPreference("my_list_key");

in my SettingActivity OnCreate method then I get always null. Why?

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <MultiSelectListPreference
            android:key="my_list_key"
            android:title="My List"
            android:defaultValue="@array/default_array" />
</PreferenceScreen>

Edit

This is the complete relevant code

public class SettingsActivity extends AppCompatPreferenceActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setupActionBar();
        initPreferences();
    }

    private void initPreferences() {        
        MultiSelectListPreference list = (MultiSelectListPreference)findPreference("my_list_key");
    }        

    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    public static class GeneralPreferenceFragment extends PreferenceFragment {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.pref_general);
            setHasOptionsMenu(true);
            bindPreferenceSummaryToValue(findPreference("my_list_key"));
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
              //....
        }
    }
}

And pref_headers.xml

<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">
    <header android:fragment="MyApp.SettingsActivity$GeneralPreferenceFragment"
        android:id="@+id/gen_pref_id"
        android:title="General"
        android:icon="@drawable/ic_info_black_24dp" />
   </header>
</preference-headers>
juergen d
  • 201,996
  • 37
  • 293
  • 362
  • [possible fix](http://stackoverflow.com/questions/14339550/preferencefragment-findpreference-always-returns-null) have you seen this? – noev Nov 24 '15 at 13:59
  • Yes, since I use the current Android Studio with Fragments - this throws an exception. – juergen d Nov 24 '15 at 14:07

0 Answers0