基本上我正在制作一个应用程序来计算不同金额的复利。如果您愿意,可以使用2个“共享首选项”。
设置 - 供用户输入利率,复利频率,期限
首选项 - 用于应用设置(例如,显示或不显示,设置背景颜色)
我正在使用的程序是当我有一组首选项时它工作正常。然而,当我有两个(当我创建'偏好'时),它搞砸了第一个设置首选项,称为'设置'。
此外,无论何时检索首选项,它都在片段中。
以下是我获得偏好的方式(当我没有2偏好xml时):
SharedPreferences getSetup = PreferenceManager.getDefaultSharedPreferences(getActivity().getBaseContext());
String t2 = getSetup.getString("rate", null);
这是我尝试的解决方案(打开特定文件然后使用getSetup或getPrefs.getString(“key,null”) - 它不起作用并始终返回默认值)
SharedPreferences getPrefs = getActivity().getSharedPreferences("preferences",0);
和设置
SharedPreferences getSetup = getActivity().getSharedPreferences("setup",0);
每当我运行应用程序时,我都会收到错误消息(“请正确设置应用程序并输入所有值”)此错误消息已设置为使用以下代码运行:
SharedPreferences getSetup = getActivity().getSharedPreferences("setup",0);
int t1 = value1.getText().length();
int t1_2 = value2.getText().length();
String t2 = getSetup.getString("rate", null);
String t3 = getSetup.getString("retirement", null);
String t4 = getSetup.getString("compounds", null);
String t5 = result.getText().toString();
if (t1 == 0 ||t1_2 ==0 || t2 == null || t3 == null || t4 == null) {
//show the error message
有人可以告诉我我做错了什么以及如何获得特定的偏好。
干杯
答案 0 :(得分:0)
我认为你想要的是
SharedPreferences getSetup = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
您可以在此处查看有关上下文的更多信息 What's the difference between the various methods to get a Context?
答案 1 :(得分:0)
getDefaultSharedPreferences和getSharedPreferences之间存在差异 试试如下。
此defaultsharedpref适用于应用特定的共享偏好设置。
SharedPreferences getSetup = PreferenceManager.getDefaultSharedPreferences(getActivity());
getSetup.edit().putString("rate", "200").commit();
String rate= getSetup.getString("rate", null);
SharedPreferences存储在app数据文件夹的xml文件中,即
/data/data/YOUR_PACKAGE_NAME/shared_prefs/reference.xml /data/data/YOUR_PACKAGE_NAME/shared_prefs/setup.xml
或默认首选项:
/data/data/YOUR_PACKAGE_NAME/shared_prefs/com.android.example_preferences.xml