Articles of android preferences

PreferenceFragment透明显示

我在ActionBar中选择Preferences选项后,我正在尝试显示PreferenceFragment 。 但是,在使用PreferenceFragment替换当前内容后,您可以在其下方看到旧内容。 如同,您可以直接看到偏好。 我在这里错过了什么吗? 我使用了我自己的一本书中的一个例子,它没有使用任何布局文件作为首选项。 你需要那些吗? 二手代码: 操作栏菜单 private boolean MenuChoice(MenuItem item) { switch (item.getItemId()) { case 0: FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); ReaderPreferences prefs = new ReaderPreferences(); fragmentTransaction.replace(android.R.id.content, prefs); fragmentTransaction.addToBackStack(null); fragmentTransaction.commit(); return true; } return false; } PreferenceReader public class ReaderPreferences extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { […]

PreferenceActivity中的ActionBar

在我的应用程序中,我使用来自Google的新动作栏兼容性示例(位于/samples/android-/ActionBarCompat ),效果很好。 我唯一的问题是将其应用到我的PreferenceActivity ,以获得类似Android Market中的设置的屏幕(见图片)。 要使用图标填充ActionBar ,每个Activity必须扩展ActionBarActivity类。 问题是我的Activity已经扩展了PreferenceActivity并且在Java类中不能扩展多个类。 必须有一种方法将ActionBar与PreferenceScreen一起使用。 如果有人能为这个共同问题提供解决方案,我会很高兴。 PS: 如何向PreferenceScreen添加按钮的解决方案不适合,因为ActionBar实际上是标题栏,所以这更像是Java而不是布局。

缓存json的最佳方法

我的应用程序不仅可以在线工作,还可以在离线模式下工作。 出于这个原因,我正在考虑find兑现数据的最佳方式。 我不喜欢使用SharedPreference来存储数据,但是在android文档中写入最大字符数允许的首选项值是8192.我不知道这是否可以? 我试图通过尝试使用FileCashing或sqLite兑现这个想法。 所以你认为什么是最好的SharedPreference vs FileCashing或vs SqLiteCaching?

Android偏好 – 有什么区别?

当我得到偏好时,有什么区别: PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 和 getPreferences(Context.MODE_PRIVATE);

对于从2.X到4.X的所有Android版本,我如何使用相同的首选项屏幕?

注意:请节省一些时间并参考接受的答案,无需阅读所有问题。 您可以阅读问题的其余部分以及我为替代(尽管不太复杂)方法提供的答案。 此外,您可能希望通过将相关的代码片段添加到您的首选项活动类中来利用Android 2.X中背景故障的修复程序。 背景 作为Android编码的新手,但在其他编程语言/框架方面有一定的经验,我期待我的Android应用程序编码将是一个相当愉快的编程。 就是这样,直到我偶然发现了这个问题: Android项目的Eclipse向导表明,如果我将最小API设置为8(Android 2.2),我可以达到95%的设备。 无论如何我都不需要用我的应用做任何花哨的事情,所以我想,“当然,为什么不呢?”。 一切都很好,除了偶尔我会发现在最近的API版本中不推荐使用的几个方法/类,所以我不得不设法继续使用旧设备的旧方法,并尝试尽可能多地使用新设备适用于较新Android版本的方法。 这是一个这样的场合。 在使用Eclipse向导创建首选项活动之后,我意识到Eclipse预编译器/解析器/检查器(或其他任何调用的)Lint会抱怨无法使用旧API版本中创建/管理首选项的新方法。 所以我想,“好吧,拧紧新的方式。让我们以旧的方式做,因为新的API版本应该向后兼容,它应该没问题”,但事实并非如此。 旧方法使用标记为已弃用的方法/类; 对我而言,即使它们仍然在当前的API中工作,它们也会在将来的版本中停止工作。 所以我开始寻找正确的方法,最后点击此页面: 在PreferenceActivity中使用什么而不是“addPreferencesFromResource”? Garret Wilson解释了一种以与新方式兼容的方式使用旧的偏好屏幕资源的方法。 它很棒,最后我觉得我可以继续使用我的应用程序编码,除非它在定位较旧的API时不起作用,因为它使用了较新的API代码。 所以我不得不设法让它适用于旧的API和更新的API。 经过一段时间的修补后,我设法find了一种方法,使用预编译器(或其他任何名称)的注释和伟大的getClass()。getMethod()以及exception。 在创建首选项子屏幕之前,一切似乎都完美无瑕。 它在较新的Android版本中正确显示,但是当我尝试使用旧版本时,我只能看到黑屏。 经过大量搜索,我发现这个页面解释了这个问题: http : //code.google.com/p/android/issues/detail?id = 4611这显然是一个众所周知的故障,它已经在几个Android版本中出现了很长时间。 我阅读了整个post并find了几个问题的解决方案,但我真的不完全喜欢它们中的任何一个。 举个例子,我更愿意尽可能避免使用静态内容,并以编程方式执行操作。 我更喜欢自动化而非重复性工作。 一些解决方案建议将子屏幕创建为父屏幕,然后将它们添加到清单文件中,并通过意图从父屏幕调用它们。 我真的很讨厌跟踪那些事情:清单中的条目,分离的屏幕资源文件,意图……所以这对我来说是禁忌。 我一直在寻找并find了一种我更喜欢的程序化方法……却发现它不起作用。 它包括迭代首选屏幕的整个视图树并为偏好子屏幕分配适当的背景,但它只是不起作用,因为我后来在经过大量调试后发现,偏好子屏幕视图不是偏好屏幕视图的子项。 我必须find一种方法来实现这一目标。 我尝试了许多我能想到的东西,研究和研究无济于事。 我几次濒临放弃,但经过两周的持续努力和大量调试后,我find了一个解决方法,我在评论#35中发布了这个。 意见 它确实不是完美的解决方案/方法,我知道它的一些缺点,但它是有效的,所以我决定分享它。 希望我的热情并不是太荒谬,因为我知道任何有经验的编码员都可以解决这个问题并不是很重要。 但是,嘿,我觉得分享知识让我好一点,无论我吹嘘多少,都比一个经验丰富的编码员能让自己保持一切。 只是分享我的观点,因为我无法相信以前没有人遇到过这个问题,但我确实相信很多人已经拥有它并且没有费心去分享他们的知识。 我在一个提议的课程中给你答案,用于Android的几个版本,以及一些关于它的用法的建议。 我愿意接受讨论和贡献,以使其成为更好的课程。 已知的问题: 父屏幕装饰视图背景克隆到子屏幕装饰视图背景,这显然不是正常行为。 状态:被解雇,直到有人提出解决此问题的充分理由 屏幕旋转时崩溃 状态:已修复。 可能与较新的API实现(内部类PF)的资源可见性相关 显然,来自preferenceFragment的inheritance类需要将其所有成员保持为静态。 […]

如何正确对齐Android中的PreferencesActivity?

我有PreferencesActivity ,我需要它才能正确对齐,因为我想使用阿拉伯语,我尝试使用android:layout_gravity=”right”用于PreferenceScreen但它没有用。 这是我的XML: 这就是我在PreferencesActivity使用XML的方式: addPreferencesFromResource(R.layout.preferences);

更改首选项(设置)后,显示设置的文本不会更新

我将尝试解释一个简单的应用场景:我的应用程序直接进入“主视图”。 在这个主视图中,我插入了一个TextView ,它显示通过PreferenceManager创建的当前设置。 为简单起见,假设我的设置中有一个checkbox。 当我第一次启动我的应用程序时 – 主视图上的TextView正确显示我的checkbox设置(true)。 现在我进入设置菜单,popup,然后我将其更改为false。 我回到主视图,看不到任何变化。 即使我将其改为假,它仍然可以说是真的。 如果我结束应用程序,然后重新启动它 – 一切都很好,它显示我的变化。 显然,当我更改设置时,主视图会停留在后台? 更改设置后,如何重绘或更新主视图?

如何将SharedPreferences备份到SD卡?

我在很多地方看到将SharedPreferences文件复制到SD卡是一个问题,因为每个制造商都将它放在其他地方。 无论文件位于何处,我都想在SD卡上备份。 有没有办法做到这一点?

Android 4.4中左侧和右侧的AppCompatPreferenceActivity奇怪填充

我有一个扩展AppCompatPreferenceActivity的SettingsActivity。 我的pref_headers.xml看起来像这样: 片段代码如下所示: @TargetApi(Build.VERSION_CODES.HONEYCOMB) public class ProfileFragment extends PreferenceFragment { @BindView(R.id.email) TextView email; @BindView(R.id.username) TextView username; @BindView(R.id.loadingPanel) RelativeLayout loadingPanel; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_profile, container, false); ButterKnife.bind(this, rootView); if (setActionbarListener != null) { setActionbarListener.setActionbarTitle(“Profil”); } loadingPanel.setVisibility(View.VISIBLE); UsernameHandler uHandler = UsernameHandler.getInstance(new UsernameResult() { @Override public void finished(String […]

如何从首选项屏幕打开AlertDialog?

我在android中开发应用程序我想显示AlertDialog如果用户从首选项屏幕检查checkboxpreference。 那我怎么能这样做..?