如何创建采用Android preferences一次性欢迎屏幕? [英] How to create a one-time welcome screen using Android preferences?
本文介绍了如何创建采用Android preferences一次性欢迎屏幕?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想创建一个屏幕,在应用程序启动后只显示一次。随后,那么它只会显示在主屏幕。我实现这一点的方法只是检查preferences并设置基于一个标志当前布局。是否有任何抽奖背上来实现这种方式?有没有更好的办法?
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
//这里是主要布局
的setContentView(R.layout.main);
米preFS = preferenceManager.getDefaultShared preferences(本);
//第二个参数是默认情况下使用的preference无法找到
布尔welcomeScreenShown = M prefs.getBoolean(welcomeScreenShown preF,假);
如果(!welcomeScreenShown){
//这里我设置的一次性布局
的setContentView(R.layout.popup_message);
共享preferences.Editor编辑= M prefs.edit();
editor.putBoolean(welcomeScreenShown preF,真正的);
editor.commit(); //非常重要,保存preference
}
}
解决方案
试着用应用程序版本code 。下面是我用一个例子code;
共享preferences共享preferences = getShared preferences(版本,0);
INT savedVersion code =共享preferences.getInt(版本code,0);
INT appVershion code = 0;
尝试 {
。appVershion code = getPackageManager()getPackageInfo(getPackageName(),0).version code;
}赶上(nnfe的NameNotFoundException){
Log.w(TAG,$异常的appVershion code CAZ:+ nnfe);
}
如果(savedVersion code == appVershion code){
Log.d(TAG,$$ savedVersion code == appVershion code);
}其他{
Log.d(TAG,$$ savedVersion code = appVershion code!);
共享preferences.Editor共享preferencesEditor =共享preferences.edit();
共享preferencesEditor.putInt(版本code,appVershion code);
共享preferencesEditor.commit();
构建alertDialogBuilder =新生成器(本);
alertDialogBuilder.setTitle(版本);
alertDialogBuilder.setMessage(这是一次显示对话框);
alertDialogBuilder.setNeutralButton(关闭,新OnClickListener(){
@覆盖
公共无效的onClick(DialogInterface对话,诠释它){
Log.d(TAG,$$的onClick);
}
});
alertDialogBuilder.show();
}
I'd like to create a screen that only shows once after the application starts. Afterward, then it will only show the main screen. The way I implemented this was just to check the preferences and set the current layout based on a flag. Are there any draw backs to implementing it this way? Is there a better way?
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Here is the main layout
setContentView(R.layout.main);
mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
// second argument is the default to use if the preference can't be found
Boolean welcomeScreenShown = mPrefs.getBoolean(welcomeScreenShownPref, false);
if (!welcomeScreenShown) {
//Here I set the one-time layout
setContentView(R.layout.popup_message);
SharedPreferences.Editor editor = mPrefs.edit();
editor.putBoolean(welcomeScreenShownPref, true);
editor.commit(); // Very important to save the preference
}
}
解决方案
Try with Application version code. Below is an example code that I have used;
SharedPreferences sharedPreferences = getSharedPreferences("version", 0);
int savedVersionCode = sharedPreferences.getInt("VersionCode", 0);
int appVershionCode = 0;
try {
appVershionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
} catch (NameNotFoundException nnfe) {
Log.w(TAG, "$ Exception caz of appVershionCode : " + nnfe);
}
if(savedVersionCode == appVershionCode){
Log.d(TAG, "$$ savedVersionCode == appVershionCode");
}else{
Log.d(TAG, "$$ savedVersionCode != appVershionCode");
SharedPreferences.Editor sharedPreferencesEditor = sharedPreferences.edit();
sharedPreferencesEditor.putInt("VersionCode", appVershionCode);
sharedPreferencesEditor.commit();
Builder alertDialogBuilder = new Builder(this);
alertDialogBuilder.setTitle("Version");
alertDialogBuilder.setMessage("This is one time show dialog box ");
alertDialogBuilder.setNeutralButton("Close", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.d(TAG, "$$ onClick");
}
});
alertDialogBuilder.show();
}
这篇关于如何创建采用Android preferences一次性欢迎屏幕?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文