标签: preferences

如何从Android中的PreferenceActivity获取SharedPreferences?

我正在使用PreferenceActivity为我的应用程序显示一些设置.我通过xml文件膨胀设置,以便我的onCreate(和完整的类方法)如下所示:

public class FooActivity extends PreferenceActivity {
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        addPreferencesFromResource(R.xml.preference);
    }
}
Run Code Online (Sandbox Code Playgroud)

PreferenceActivity PreferenceFragment的javadoc 说明了这一点

当用户与它们交互时,这些首选项将自动保存到SharedPreferences.要检索此活动中的首选项层次结构将使用的SharedPreferences实例,请使用与此活动相同的包中的上下文调用getDefaultSharedPreferences(android.content.Context).

但是我如何在另一个Activity中获得SharedPreference的名称?我只能打电话

getSharedPreferences(name, mode)
Run Code Online (Sandbox Code Playgroud)

在其他活动中但我需要PreferenceActivity使用的SharedPreference的名称.名称是什么或如何检索它?

android preferences preferenceactivity sharedpreferences

364
推荐指数
3
解决办法
31万
查看次数

在Android应用程序中存储用户设置的最合适方法是什么

我正在创建一个使用用户名/密码连接到服务器的应用程序,我想启用"保存密码"选项,这样用户每次启动应用程序时都不必输入密码.

我试图使用共享偏好设置,但不确定这是否是最佳解决方案.

我将不胜感激任何有关如何在Android应用程序中存储用户值/设置的建议.

java encryption android credentials preferences

302
推荐指数
8
解决办法
15万
查看次数

使用xml引用字符串数组资源中的字符串

我有一些首选项,您可以启用/禁用菜单上显示的项目.共有17项.我在values/arrays.xml中创建了一个字符串数组,其中包含17个项目中的每个项目的标题.

我有preferences.xml,它有我的首选项文件的布局,我想引用字符串数组中的单个项目作为标题.

我怎样才能做到这一点?

在Android开发人员参考中,我看到我如何使用XML引用单个字符串,但不知道如何使用XML引用数组资源中的字符串.

xml arrays android reference preferences

246
推荐指数
4
解决办法
26万
查看次数

按文件类型设置Vim空白首选项

在我的工作中,我需要按照家庭风格进行缩进,如下所示:

  • 编码html和ruby时有2个空格
  • 编码javascript时的选项卡,建议使用tabwidth = 4

为每种文件类型指定不同的空白首选项的最佳方法是什么?

vim whitespace preferences

147
推荐指数
4
解决办法
4万
查看次数

从屏幕中删除/隐藏首选项

我有一个扩展PreferenceActivity的活动.我正在从xml文件加载首选项.但在某些情况下,我需要根据我的应用状态完全隐藏屏幕中的一个偏好设置.有一个setEnabled方法,但它不是我想要的.我想完全从屏幕上删除该首选项.可能吗 ?

android preferences

133
推荐指数
7
解决办法
7万
查看次数

如何在Android中安全存储访问令牌和秘密?

我将使用oAuth从谷歌获取邮件和联系人.我不想每次都要求用户登录以获取访问令牌和密码.根据我的理解,我需要将它们与我的应用程序一起存储在数据库中SharedPreferences.但我有点担心安全问题.我读过你可以加密和解密令牌,但是攻击者很容易反编译你的apk和类并获得加密密钥.
在Android中安全存储这些令牌的最佳方法是什么?

security android oauth token preferences

114
推荐指数
4
解决办法
6万
查看次数

Android首选项:如何在用户未使用首选项屏幕时加载默认值?

我正在使用PreferenceActivity让用户设置一些值.我正在使用定义的首选项为xml文件提供它.

android:defaultValue=""为他们设置了全部.

当我启动我的应用程序时,我需要首选项,或者如果它们尚未手动设置,我想要默认值:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean value = prefs.getBoolean("key"), false); 
Run Code Online (Sandbox Code Playgroud)

但是,当android:defaultValue="true"我还是得到的时候false.因此,看起来XML中设置的defaultValues不会在初始化首选项屏幕时使用.

我不想硬编码方法中的默认值getBoolean().那么,有没有办法获得默认值,只在一个地方定义这些?

android default preferences

109
推荐指数
3
解决办法
9万
查看次数

Tab Vs Vim中的空间首选项

Vim非常适应标签Vs. 空间偏好.据我了解,该tabstop设置表示制表符的宽度.该shiftwidth设置指定使用<<>>命令时递增/递减的列数,而softtabstop设置会影响Tab在插入模式下按键时要插入的空白量.如果expandtab启用,则Tab键会插入softtabstop空格字符数.而用expandtab切断时,按下Tab键会插入的最小可能数目的匹配标签+空格字符softtabstop.(如果我错了,请纠正我.)

最后一点让我想知道:有一个你不想要的实际案例shiftwidth == tabstop && tabstop == softtabstop吗?我想不出一个.就我而言,如果我可以在一个单独的任务中将所有这三个设置为相同的值,那将是最方便的.例如:

:set stab=4
Run Code Online (Sandbox Code Playgroud)

这相当于运行:

:set tabstop=4 softtabstop=4 shiftwidth=4 
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议如何做到这一点?


UPDATE

感谢迄今为止对php,hobbskaiser.se的回复.我不是单独回复每个人,而是在这里更新问题.

Softtabstop已关闭expandtab

我在上面说过,关闭expandtab后,按Tab键会插入尽可能少的匹配的tab +空格字符softtabstop.我支持这一点,但我认为我需要解释我的意思.我将通过几个例子尝试这样做.要继续,请运行:set list以便您可以看到制表符.

tabstop=4 softtabstop=2 shiftwidth=4 noexpandtab

在插入模式下,按Tab键可插入2个空格字符.按tab键的第二时间,并且代替插入2个更多的空间字符(总共4个空格字符)它替换先前的2位具有单个制表符.Tabstop设置为4,因此单个制表符的宽度与4个空格的宽度相同.

tabstop=4 softtabstop=6 shiftwidth=4 noexpandtab

在插入模式下,按Tab键可插入1个制表符加2个空格.制表符的宽度为4,因此总宽度为6,这是使用3个字符实现的.再次按Tab键可插入两个制表符,并删除先前插入的两个空格.总宽度为12,使用3个字符即可实现.

在这两个示例中,Vim都插入了与softtabstop匹配的最小可能数量的制表符+空格字符.

如果我正在使用expandtab关闭,我看不到自己想要通过将softtabstop设置为与tabstop不同的值来实现额外的粒度控制.它仍然将是有益的我能够设置tabstop,softtabstopshiftwidth用一个命令相同的值.

expandtab是否使softtabstop冗余?

tabstop=4 softtabstop=0 shiftwidth=4 …

vim whitespace preferences

86
推荐指数
3
解决办法
2万
查看次数

Java:java.util.Preferences失败

我的程序将加密的产品密钥数据保存到具有java.util.Preferences类的计算机(系统首选项,而不是用户).问题是,在Windows和Linux上(尚未在OSX上测试,但它可能是相同的),如果我不使用sudo或具有管理员权限运行程序,它会在尝试读取时发出异常或警告或保存数据.

显然要求用户使用Admin权限运行程序是不切实际的.最理想的是,我希望操作系统向用户请求许可.

这是非常愚蠢的,并且消除了一半的目的Preferences.怎么解决这个问题?

以下是我需要的摘要:我需要我的程序来请求操作系统的许可以保存系统设置.


这是错误信息

当我尝试读取节点时(因为节点不存在),这是错误:

Mar 18, 2011 9:41:15 AM java.util.prefs.WindowsPreferences <init>
WARNING: Could not create windows registry node Software\JavaSoft\Prefs\myapp at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
Mar 18, 2011 9:41:15 AM java.util.prefs.WindowsPreferences WindowsRegOpenKey1
WARNING: Trying to recreate Windows registry node Software\JavaSoft\Prefs\myapp at root 0x80000002.
Mar 18, 2011 9:41:15 AM java.util.prefs.WindowsPreferences openKey
WARNING: Could not open windows registry node Software\JavaSoft\Prefs\myapp at root 0x80000002. Windows RegOpenKey(...) returned error code 2.
Mar …
Run Code Online (Sandbox Code Playgroud)

java preferences

65
推荐指数
4
解决办法
8万
查看次数

如何与首选属性android:dependency相反?

是否有与之完全相反的XML属性android:dependency

我希望在检查另一个未选中时禁用其他依赖首选项并禁用它.

编辑:也许问题不在于android:dependency可能有一个xml属性,我可以添加,以使该偏好设置的默认值被禁用,然后android:dependency将按照我想要的相反方式切换它.

再次编辑:我尝试android:enabled="false"在首选项中进行设置,它会像我想要的那样禁用它,但即使它依赖于其他首选项它也没有像我希望的那样启用它

java xml dependencies android preferences

62
推荐指数
2
解决办法
1万
查看次数