有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java MultiSelectListPreference是否获取检查值?

嗨,伙计,我想做一个简单的新闻阅读器应用。在共享首选项中,用户可以选择他可以看到的新闻部分。在添加MultiSelectListPreference并检索th值之前,我一直在进行通信。但不幸的是,它检索的是所有值,而不仅仅是已检查的值

这是我的代码:

<MultiSelectListPreference 安卓:id="@+id/multiple_choice" 安卓:dialogTitle="@string/section_news_label" 安卓:entries="@array/news_sections" 安卓:entryValues="@array/section_values" 安卓:key="section_news_key" 安卓:summary="@string/section_hint" 安卓:defaultValue="@array/default_array" />

public class SettingsActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_settings); } public static class NewsPreferenceFragment extends PreferenceFragment implements Preference.OnPreferenceChangeListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.settings_main); Preference newsToShow = findPreference(getString(R.string.settings_news_show_key)); bindPreferenceSummaryToValue(newsToShow); } @Override public boolean onPreferenceChange(Preference preference, Object value) { String stringValue = value.toString(); preference.setSummary(stringValue); return true; } private void bindPreferenceSummaryToValue(Preference preference) { preference.setOnPreferenceChangeListener(this); SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(preference.getContext()); String preferenceString = preferences.getString(preference.getKey(), ""); onPreferenceChange(preference, preferenceString); } } }

SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); Set<String> entries = sharedPrefs.getStringSet("section_news_key", null); if(entries == null){ Log.v("!!!!!!!!!", "No entries"); }else { Log.v("!!!!!!!!!", entries.toString()); }

知道我做错了什么吗

Tags:  

共 (0) 个答案