微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

xml – 用户首选项文件与App首选项文件

我的android应用程序有两种首选项:

1)我在res / xml / preferences.xml中定义了用户首选项,以便用户可以使用PreferenceActivity管理他们的首选项.

2)我想为我的应用程序的全局配置首选项定义另一个文件.

管理我的应用配置偏好的最佳方法是什么?我应该创建另一个带有配置值的XML文件,还是应该在strings.xml中指定这些配置值?管理配置首选项的最佳做法是什么?

首选项文件不是项目的/res/xml/defaults.xml中的storead

它们存储在应用程序文件夹中的设备上

/data/data/com.your.pkg/default.prefs

尝试不要指定文件名,因为您会在首选项文件中遇到一些问题,例如此OP在此问题中有:How do I get preferences to work in Android?

SharedPreferences preferences = PreferenceManager
                    .getDefaultSharedPreferences(context);

然后你可能要查询

preferences.getString('weightPref',null);

许多应用程序可以提供捕获用户对特定应用程序或活动的设置的偏好的方式.为了支持这一点,Android提供了一组简单的API.

首选项通常是名称值对.它们可以作为“共享首选项”存储在应用程序中的各种活动中(注意,目前它不能跨进程共享).或者它可以是需要存储特定于活动的东西.

>共享首选项:共享首选项可以由应用程序之外的所有组件(活动,服务等)使用.
>活动处理首选项:这些首选项只能在活动中使用,不能由应用程序的其他组件使用.

共享偏好:

共享首选项在Context类的getSharedPreferences方法的帮助下进行管理.首选项存储在文件(1)中,或者您可以指定用于引用首选项的文件名(2).

(1)以下是指定文件名时获取实例的方法

public static final String PREF_FILE_NAME = "PrefFile";
   SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME,MODE_PRIVATE);

MODE_PRIVATE是首选项的操作模式.它是认模式,表示只有调用的应用程序才能访问创建的文件.支持的其他两种模式是MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE.在MODE_WORLD_READABLE中,其他应用程序可以读取创建的文件但不能修改它.对于MODE_WORLD_WRITEABLE,其他应用程序也具有对创建文件的写入权限.

(2)推荐的方法是使用认模式,而不指定文件

SharedPreferences preferences = PreferencesManager.getDefaultSharedPreferences(context);

最后,一旦有了首选项实例,以下是如何从首选项中检索存储的值:

int storedPreference = preferences.getInt("storedInt",0);

要在偏好文件中存储值,必须使用SharedPreference.Editor对象. Editor是SharedPreference类的嵌套接口.

SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt",storedPreference); // value to store
editor.commit();

编辑器还支持remove()和clear()等方法文件删除首选项值.

活动偏好:

共享首选项可以由其他应用程序组件使用.但是,如果您不需要与其他组件共享首选项,并希望拥有私人首选项活动.您可以在活动的getPreferences()方法的帮助下完成此操作. getPreference方法使用getSharedPreferences()方法和首选项文件名的活动类的名称.

以下是获取首选项的代码

SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt",0);

存储值的代码也与共享首选项的代码相同.

SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt",storedPreference); // value to store
editor.commit();

您还可以使用其他方法,例如在数据库中存储活动状态.注意Android还包含一个名为android.preference的包.该包定义了用于实现应用程序首选项UI的类.

要查看更多示例,请在开发者网站上查看Android的Data Storage帖子.

原文地址:https://www.jb51.cc/xml/293052.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。