我的应用程序需要初始用户设置,这是用户第一次打开应用程序。他应该能够进行一些初始设置,以确定应用程序的运行方式。为此,我使用了 sharedPreferences。我所做的很简单,根据布尔值是“真”还是“假”来设置 contentView。但是我的问题是关于 setContentView() 之后会发生什么。
//Variables
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//creating sharedpref file
PREFS_NAME = "MyPrefsFile";
shPref = getSharedPreferences(PREFS_NAME, 0);
shPref.edit().putBoolean("my_first_time", true).commit();
//checking if app's being launched for first time
if(shPref.getBoolean("my_first_time", true)) {
setContentView(R.layout.page_one);
//setting the shPref as false
shPref.edit().putBoolean("my_first_time", false).commit();
}
//checking if app has been launched before
else if(shPref.getBoolean("my_first_time", false) && shprefchecker == 1) {
setContentView(R.layout.home_page);
}
}
所以我想做的是等待用户完成设置,然后才能将 shPref 设置为 false。我猜测一旦在这一行“setContentView(R.layout.page_one);”中更改了布局,它会自动将 shPref 设置为 false。我希望应用程序在用户完成初始设置之前不执行任何操作(初始设置中的第一个布局是 page_one.xml)。
我可能听起来很困惑,但我该怎么做呢?请帮忙。感谢所有答案。谢谢!