Articles of android preferences

如何pipe理PreferenceFragment中的分隔线?

我开始处理PreferenceFragment中的PreferenceFragment 。 这是我有: 我试图: 摆脱项目之间的分隔线。 我想这可以从风格来定义,但我不知道如何。 我试着在运行时调用findViewById(android.R.id.list)获取首选ListView ,因为我在某处读取,但它返回null。 如图所示,在标题顶部设置新的全宽分隔符。 例如,在这种情况下,我想在“Statistiche”上方设置一个完整宽度的分隔线,但不要在列表顶部的“Generali”之上。 我想到的唯一办法就是把分隔线设定为假的偏好,就像: <Preference android:layout="@layout/divider" //here I set width and a divider resource /> <PreferenceCategory … /> 这里的主要问题是,我的PreferenceFragment (或者它的ActionBarActivity )有一些左/右填充,这使得我添加到preferences.xml中的任何分隔符不能覆盖整个宽度。 所以我的问题是: 我怎样才能摆脱你可以在图像中看到的默认的项目分隔符? 我怎样才能设置标题上方的全宽分隔符,或者我如何摆脱内部片段/活动填充? 当然,我的活动布局没有任何(明确的)填充。

如何使TextView看起来像一个设置的PreferenceCategory标题

这应该是很容易弄清楚,但我无法在任何地方find答案。 我正在尝试使常规的TextView看起来非常类似于任何应用程序的设置上提供的首选项类别标题。 这是我的意思: 现在,我已经尝试了一些东西,但我似乎没有把事情做好。 例如,我试着设置这个: android:drawableBottom="?android:attr/dividerVertical" 到我的TextView,但似乎没有做任何事情,我的TextView仍然看起来像这样: 我也尝试简单地设置一个可绘制的我做的: <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="1dp" android:color="@android:color/darker_gray" /> </shape> 但是这也没有出现在我的文字上。 这是现在的TextView风格: <style name="NewTaskHeaderText"> <item name="android:layout_height">wrap_content</item> <item name="android:layout_width">match_parent</item> <item name="android:textColor">@android:color/holo_blue_dark</item> <item name="android:minHeight">48dp</item> <item name="android:gravity">center_vertical</item> <item name="android:padding">8dp</item> </style> <TextView android:id="@+id/textView4" style="@style/NewTaskHeaderText" android:drawableBottom="@android:attr/dividerVertical" android:text="@string/some_text" android:textAppearance="?android:attr/textAppearanceMedium" /> 任何想法,将不胜感激。

如何创build只接受整数值的首选项

有没有办法在只接受整数值的PreferenceFragment中创build首选项 ? 我可以实现一个EditTextPreference并注册一个OnPreferenceChangeListener ,如果用户input一个不是数字的string,我可以拒绝这个更改,但是我更喜欢那些仅仅保存数字而不允许用户input任何内容的东西,也许只显示一个拨号盘键盘。我不喜欢存在,因为首选的每个后裔映射到一个布尔( CheckBoxPreference ),一个string(* EditTextPreference)或一个string数组( MultiSelectListPreference ),即有没有偏好映射到整数,但也许有些人可以给我一个提示,或者至less告诉我是否有比我上面提出的更好的解决scheme。 Gray提出的解决scheme: EditText editText = ((EditTextPreference) findPreference("intent_property")).getEditText(); editText.setKeyListener(new NumberKeyListener() { @Override public int getInputType() { // The following shows the standard keyboard but switches to the view // with numbers on available on the top line of chars return InputType.TYPE_CLASS_NUMBER; // Return the following to show a […]

从首选项屏幕开始活动(意图在xml文件中定义)

在我的偏好文件中,我去这个 <PreferenceCategory android:title="Title" > <Preference android:title="title" > <intent android:action="com.my.package.MainActivity" /> </Preference> </PreferenceCategory> 该活动在清单文件中创build,但我仍然得到 android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.my.package.MainActivity } 我如何从首选项屏幕开始活动?

在Android上多selectListPreference

任何想法在Android上实现多选(checkbox)ListPreference? 我需要扩展ListPreference吗? 是否有任何类已经logging这样做? 谢谢

Android CheckBoxPreference:如何在首选项更改中禁用和启用其他首选项

我有CheckBoxPreference和其他2个:一个是编辑testing指导。 另一个是ListBox Pref。 如何启用列表框前导和禁用编辑文本前缀。 当CheckBoxPreference打开?

如何在Android的偏好设置中处理长文本?

背景 我正在做一个有一些设置的应用程序,我想使用内置的PreferenceActivity或PreferenceFragment作业 问题 有些偏好有一个我不能缩短的长题目,再加上我认为,如果我把本地化的应用程序(翻译成多种语言),我会面临同样的问题(例如德语,有时甚至有很长的单词)。 你在这种情况下得到的仅仅是文本的开始,然后是“…”(或者更less的点,这没有多大意义)。 例: 我试过了 我知道PreferenceActivity从ListActivity扩展,所以我可以改变它的适配器到任何我想要的,但是这将消除它的工作方式。 我也知道,我可以从每个偏好类的types扩展,使用“onCreateView”方法有一个引用创build的视图,然后访问其子,但这很奇怪,没有? 我的意思是,这几乎就像假设它永远不会改变它的样子。 编辑:这是我已经尝试过的示例代码: 从每个偏好类延伸,并在每个偏好类中使用: … @Override protected View onCreateView(final ViewGroup parent) { final View view=super.onCreateView(parent); ViewUtil.handlePreferenceTitleTextView(view); return view; } … //ViewUtil.java : private void handlePreferenceTitleTextView(final View v) { final TextView titleTextView=(TextView)v.findViewById(android.R.id.title); if(titleTextView!=null) titleTextView.setSingleLine(false); } 它的工作原理,但我不认为这是build议的,因为谷歌可能会改变偏好查看的工作方式。 这个问题 如何在Android的首选项标题中处理长文本? 是否有可能使它具有椭圆大小/字幕(以便它将有一个animation来显示一切)? 或者,也许汽车适合的字体大小? 或者设置它有自动换行? 或者一个水平的scrollView,将允许用户滚动阅读文本的其余部分? 是否有一个如何处理这种情况的惯例? 也许长时间点击以显示全文/对话框以查看全文?

Android O中的PreferenceDataStore

我读了这篇文章https://medium.com/@ianhlake/hidden-gems-of-android-o-7def63136629 。 这是写在那里的: SharedPreferences已经死了。 万岁SharedPreferences。 SharedPreferences继续在Android O中工作吗? 我们是否需要通过实现PreferenceDataStore来实现自己的机制来将数据存储在键值对中 任何人都可以帮助如何将方法来实现新的SharedPreferences使用PreferenceDataStore &什么是开发自己的实现的用例? 目前的做法有什么缺点?

如何使PreferenceActivity启动对话框来设置自定义首选项

我有一个工作的首选项设置从菜单选项启动。 在首选项中,我设置了一个自定义首选项,它必须启动一个包含3个TextViews的对话框来设置确认并更改密码。 现在我不知道如何从PreferenceActivity的onPreferenceClick启动对话框。 如果我听起来像一个新的 – 我是,对不起! 这是我popup对话框的XML布局: <?xml version="1.0" encoding="UTF-8"?> <LinearLayout android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" android:id="@+id/root" xmlns:android="http://schemas.android.com/apk/res/android"> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/TextView_Pwd1" android:text="@string/settings_oldpassword" android:textStyle="bold" /> <EditText android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/EditText_OldPwd" /> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/TextView_Pwd1" android:text="@string/settings_password" android:textStyle="bold" /> <EditText android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/EditText_Pwd1" android:inputType="textPassword" /> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/TextView_Pwd2" android:text="@string/settings_password2" android:textStyle="bold" /> <EditText android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/EditText_Pwd2" android:inputType="textPassword" /> <TextView […]

OnPreferenceChangeListener和OnSharedPreferenceChangeListener有什么不同

我想获得一个checkbox首选项的值。 哪种方法适合倾听偏好? OnPreferenceChangeListener和OnSharedPreferenceChangeListener之间的真正区别是什么? 更新为什么onSharedPreferenceChanged不被调用? public class Setting extends PreferenceActivity implements OnSharedPreferenceChangeListener // ,OnPreferenceChangeListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences);// deprecated warning } @Override public void onSharedPreferenceChanged( SharedPreferences sharedPreferences, String key) {// DO Stuff } @Override protected void onResume() { super.onResume(); // getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); // PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this); this.getSharedPreferences("myPrefDB", MODE_PRIVATE) .registerOnSharedPreferenceChangeListener(this); } @Override protected void onPause() […]