Articles of android preferences

如何在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() […]

我如何获得Android偏好的类别?

我如何获得PreferenceCategory的Preference ? PreferenceManager有一个findPreference方法,但Preference没有getCategory方法。 有没有一种方法从它的关键名称获得PreferenceCategory的Preference ?

在首选项中,像使用RingtonePreference一样select我的声音

我的声音在我的/ raw文件夹中,我希望我的用户能够在首选项中select一个完全像RingtonePreference一样的声音,但只能用我的声音。

如何将工具栏添加到AppCompatPreferenceActivity?

我试图添加工具栏到AppCompatPreferenceActivity,但我不知道如何去做。 你能告诉我如何?

如何从屏幕上删除Android偏好设置

我试图从屏幕上删除一个偏好,所以如果用户使用的是一个大于2.2的SDK,它是不可见的。 我发现了几个答案,说getPreferenceScreen()。removePreference(thePreference)将工作,但我每次尝试时返回FALSE。 我是否在错误的地方使用它? 我的代码的任何线索? public class Preferences extends PreferenceActivity implements OnSharedPreferenceChangeListener { private static final String POLLING_PREFERENCE = "update_frequency_list"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.preferences); // Get a reference to the preferences mPollPref = getPreferenceScreen().findPreference(POLLING_PREFERENCE); //If the SDK is 2.2 or greater do not display […]

首选项屏幕显示文本块

我试图做一个偏好屏幕,只有一个关于,联系和合法的选项,所有这些当单击时只显示文本blurb和图标在一个单独的页面,没有shared preferences或任何东西。 我无法理解层次结构以显示文本。 我希望stream程是: settings -> about -> the about text 目前我有这个,这给了我的类别和选项,但我不知道如何才能显示新的文字。 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="Info"> <Preference android:title="About"/> </PreferenceCategory> … </PreferenceScreen> 我不知道用什么选项来使可点击进入一个文本视图。

使用带有PreferenceActivity或PreferenceFragment的SharedPreferences自定义子类

我正在使用SharedPreferences的自定义子类来encryption我在应用程序中保存的设置,类似于第二个响应中所做的: 在Android应用程序中存储用户设置的最合适的方法是什么 我必须保存的偏好数量正在增长。 在我只是使用自定义视图来更新这些首选项之前,但这将变得繁琐,我想使用PreferenceActivity或PreferenceFragment来代替。 问题是,似乎没有办法让这两个类中的任何一个使用我的子类来访问我的数据,这意味着它从默认的首选项文件中获取的数据将会是无用的,因为它没有被解密。 我发现有些人已经创build了Preference的自定义实现来encryption那里的数据,但是我不希望这样做,因为数据已经在我的SharedPreferences子类中被encryption/解密了,我想保留它办法。 我也一直在寻找PreferenceActivity和PreferenceManager的源代码,我不知道最好的方法来处理这个。 有没有其他人有幸能完成这样的事情,并对我可能从哪里开始有任何build议?