Articles of android preferences

Android:ListPreference隐藏/禁用值

我正在生成一个基于xml(entries和entryValues)的listPreference对话框。 Title (AZ) Title (ZA) Visits (default) Date Manual titleASC titleDESC visitsSort createSort manualSort 我想根据其他一些参数隐藏/禁用某些条目(例如:Manual)。 我知道它应该在这个范围内: Preference sorted = (Preference) findPreference(OPT_SORT); sorted.setOnPreferenceClickListener(new OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { if (params) { What should i put here to hide/disable some of the entries? } return true; } }); 谢谢! 编辑 : 我发现的最佳解决方案是加载一组不同的条目和EntryValues。 在Preference类(onCreate)上: ListPreference sortBy […]

在共享首选项中保存ArrayList

我正在寻找几个小时来找出为什么在共享首选项中保存布尔列表不起作用。 方法不保存或加载某些东西…… loadmethod总是返回替代值:所以list_size为0,布尔值为false。 首先,我在MainActivity中创建列表并调用save方法: SaveLoadTraining sLoad = new SaveLoadTraining(); ArrayList listBoolTrain = new ArrayList(); listBoolTrain.add(true); listBoolTrain.add(true); sLoad.saveArray(listBoolTrain); 子类SaveLoadTraining如下所示: package de.sebspr.app08.halle; import java.util.ArrayList; import android.content.Context; import android.content.SharedPreferences; import de.sebspr.app08.MainActivity; public class SaveLoadTraining { private Context context; public static final String PREFS_NAME = “ListFile”; private ArrayList list; public SaveLoadTraining(){ this.context = MainActivity.getMContext(); } public void saveArray(ArrayList list){ […]

从首选项中删除图标

Preference myPreference; … Drawable originalIcon = myPreference.getIcon(); myPreference.setIcon(android.R.drawable.btn_star); … myPreference.setIcon(originalIcon); 上面的代码会将图标更改为首选项,然后再将其还原。 如果首选项没有图标,则首选项的文本向右移动并添加图标(getIcon返回null)。 为Drawable调用setIcon为null不会删除图标。 如何删除图标并将首选项文本保留为原始位置。

如何获得Android系统偏好?

棒棒糖上的Android系统首选项屏幕似乎使用类似于“卡片布局”的布局。 我正在尝试为我的应用程序获得相同的外观,但无法看到他们如何使用默认的PreferenceFragment实现它。 任何人都可以向我解释,如何在不写自己的偏好的情况下达到同样的效果? 请注意,我已经看过并阅读了这些问题,但它们没有提供合适的答案: 如何实现偏好类别卡,如Android系统设置 (答案只显示如何创建看起来相似的布局。与PreferenceFragment无关) Android Lollipop Sections分隔符/分隔符 (参考首选项截图,但OP似乎不想将它应用于PreferenceFragment ) 如果感兴趣,我当前的首选项xml如下所示: 我扩展了PreferenceFragment并加载了xml addPreferencesFromResource(R.xml.prefs);

数字而不是铃声名称

我想获得铃声名称。 我用这个代码 Ringtone ringtone = RingtoneManager.getRingtone(preference.getContext(), Uri.parse(stringValue)); String name = ringtone.getTitle(preference.getContext()); 我得到号码(例如 – 17090)不是铃声名称。 怎么了?

在Android PreferenceActivity中更改分隔线颜色

任何人都知道如何在Android PreferenceActivity中更改分隔线颜色?

首选项列表仅显示第一个元素

我正在使用自定义Preference视图开发Preference 。 我的问题是我用ListView创建了一个视图,它只显示了第一个元素。 我发布了我的代码和图片: http : //imageshack.us/photo/my-images/545/sc20120307161530.png/ http://img545.imageshack.us/img545/7207/sc20120307161530.png’border =’0’/> XML: 自定义ListPreference: package com.battleship.preferences; import com.battleship.R; import android.content.Context; import android.content.SharedPreferences; import android.media.AudioManager; import android.preference.Preference; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.Toast; public class ListPreferences extends Preference implements OnCheckedChangeListener { public ListPreferences(Context context) { […]

Android偏好添加不需要的字符

我在Android中的SharedPreferences有一个很大的问题。 一旦应用程序关闭,首选项就会向我的一个字符串值添加不需要的字符。 实际上它是一个可配置的转义序列。 我有一个简单的设置,一个MainActivity包含 @Override protected void onStart() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); sequence = prefs.getString(“escape_sequence”, “”); } 以及设置值的首选项屏幕。 当我打开应用程序进入prefences屏幕时,将值正确设置为\n\n并返回到MainActivity ,断点正确显示序列为Java.lang.String, value(char[2])= “\n\n”, count=2 。 当我现在通过android studio重新启动应用时,代码中的相同断点突然显示: Java.lang.String, value(char[6])= “\n\n “, count=6 ,包含4个空格和10个转义符\u0000字符。 任何人都可以为什么会这样,我能做些什么呢? 顺便说一下,到目前为止,我还没有触及App中任何地方的SharedPreferences.Editor。 我是通过PreferencesScreen严格完成的。 因此,在应用程序的任何位置都不会进行覆盖。 也不应该应用默认值,但是设置是android:defaultValue=”\n\n”无论如何。 编辑: 我find了原因:如果换行符位于首选项的末尾,则android会添加空格。 我不知道为什么。 编辑: 这是自定义首选项代码: public class SequencePreference extends DialogPreference { EditText sequenceInput; public SequencePreference(Context context, AttributeSet […]

findViewById为首选项布局返回null

我有一个首选项屏幕(responder_generic.xml),如下所示: 我实例化如下:(在2.3.3版本中) addPreferencesFromResource(R.xml.responder_generic); 我的layout = preference_header_switch_item_responder如下所示: 现在,我分别在layout文件夹和layout/v-14定义了复合按钮,如下所示: 和 在onPostCreate方法中,我试图在运行时使用findViewById(R.id.switchWidget)find此checkbox/开关,但它始终返回null。 任何想法可能是什么原因?

每个设置的OnPreferenceChangeListener

我知道我可以这样做: Preference pref = findPreference(getString(R.string.pref_vibrate_on_key)); pref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { LogUtil.d(“Working!”); return true; } }); 但我想为每个偏好添加一个Listener。 我尝试过: SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); sp.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener() { @Override public void onSharedPreferenceChanged( SharedPreferences sharedPreferences, String key) { LogUtil.d(“working!”); } }); 但它不起作用。 这可能吗? 如果是这样,我做错了什么?