我正在使用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的名称.名称是什么或如何检索它?
我真的在努力解决这个问题.Java/Android新手.我正在编写我的第一个应用程序,这是第一件让我花费超过几天寻找的应用程序.这是设置:这是一个BAC计算器/饮料柜台:

公式用于计算BAC.这是论坛:
Bac = ((StandardDrinks / 2) * (GenderConstant / Weight)) - (0.017 * Hours);
Run Code Online (Sandbox Code Playgroud)
如您所见,能够修改性别和体重将产生更准确和个性化的结果.所以我把它们作为双打:
double GenderConstant = 7.5; //9 for female
double Weight = 180;
Run Code Online (Sandbox Code Playgroud)
要更改这些变量,我希望此人能够进入设置并选择不同的值.我已经设置了这些东西,但没有链接到上面显示的变量,因为我不能为我的生活弄清楚如何.他们来了:

我按下菜单按钮,然后弹出.大.我将点击"设置".

现在弹出首选项.这是我的preferences.xml:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Personal Settings">
<ListPreference
android:title="Gender"
android:summary="Verify or deny the presence of a Y chromosome."
android:key="genderPref"
android:defaultValue="male"
android:entries="@array/genderArray"
android:entryValues="@array/genderValues" />
<ListPreference
android:title="Weight"
android:summary="How much the planet pulls on you, in pounds."
android:key="weightPref"
android:defaultValue="180"
android:entries="@array/weightArray"
android:entryValues="@array/weightValues" />
</PreferenceCategory>
<PreferenceCategory android:title="Drink Settings">
<ListPreference
android:title="Beer Size"
android:summary="The volume of …Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中启动了一个启动活动,然后在5秒后加载主类.我正在考虑将其更改为仅在应用程序的初始启动时显示的启动.我在考虑只是将文本文件写入文件系统,然后检查它是否存在.如果找到了,那么就不要加载启动画面.有没有更好的方法来检查应用程序是否在第一次启动?