我正在学习如何在 android 应用程序中设置首选项。我有一个文件 res/xml/prefs.xml,其中包含一些不同的组件(?)。这由 Prefs.java 引用,它addPreferencesFromResource(R.xml.prefs);
在其onCreate()
方法中使用。据我了解,prefs.xml 文件设置首选项,而 Prefs.java 文件访问 prefs.xml 以提供逻辑(然后我将对其进行编程)。
然后在我的清单中,我有一项活动作为
<activity
android:name=".Prefs"
android:label="Preferences" >
<intent-filter>
<action android:name="com.example.lesson1.PREFS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
不太确定 Manifest 是否引用 Prefs.java 或者是否相反或什么。
此外(目前最令人困惑的),我还有另一个名为 Splash.java 的文件,它显示一个启动屏幕。在初始屏幕上onCreate()
,它执行以下操作:
MediaPlayer ourSong = MediaPlayer.create(Splash.this, R.raw.splash);
SharedPreferences getPrefs = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
boolean music = getPrefs.getBoolean("checkbox", true);
if (music) {
ourSong.start();
}
我不确定这如何知道偏好(其中任何一个,或者它引用的任何一个)在哪里。我从来没有告诉它 prefs.xml 是首选项文件,或者它在哪里。那么这是首选项所在的默认设置res/xml/prefs.xml
并且它自动知道吗?
我只是对事情的整个顺序感到非常困惑。哪个文件引用哪个?清单如何在这里发挥作用(似乎它只是指向 .java 文件来告诉 android 应用程序它在那里,但我真的不知道)。最后,是否可以声明首选项位于不同的 .java 和 .xml 文件中,还是必须将它们称为 prefs.java/.xml?
谢谢,对不起,如果这令人困惑。我自己很困惑,无法真正判断我在这里是否完全有意义。