1、说明:
开发工具:Android Studio 1.3
效果安装包和源码:见底部下载连接
很多应用程序都有向导页面,并且向导页面只是用户第一次进入的时候才显示,第二次以后都不会显示向导页面
2、实现思路
页面大致分为3个,一个欢迎页,一个向导页,一个主页
第一次进入程序,首先打开欢迎页,并实现延迟跳转(见 http://blog.youkuaiyun.com/u011183394/article/details/46761651)
并记录该次为第一次进入通过SharedPreferences实现,跳转至向导页,向导页使用了ViewPage,并且滑动到最后一个页卡时显示一个按钮,单击按钮进入主页
第二次进入,也是首先打开欢迎页,此时根据SharedPreferences判断得到为非第一次进入,则直接跳转到主页
3、代码分析
1)、记录是否第一次进入程序
/**
* 记录用户是否是第一次进入
* Created by yz1309 on 7/5/2015.
*/
public class SpUtils {
private static final String Sp_Name = "welcome";
private static final String Sp_Is_First = "isFirst";
// 读取是否是第一次进入
public static Boolean getSp(Context context) {
return
context.getSharedPreferences(Sp_Name,
Context.MODE_PRIVATE).getBoolean(Sp_Is_First, false);
}
// 写入值
public static void putSp(Context context,Boolean isFirst){
SharedPreferences.Editor editor = context.getSharedPreferences(
Sp_Name,Context.MODE_APPEND
).edit();
editor.putBoolean(Sp_Is_First,isFirst);
editor.commit();
}
}
2)、实现延迟跳转并判断跳转至哪个页面
new Timer().schedule(
new TimerTask() {
@Override
public void run() {
if (!SpUtils.getSp(getApplicationContext())) {
startActivity(new Intent(getApplicationContext(), WelcomeGuideActivity.class));
SpUtils.putSp(getApplicationContext(),true);
}
else{
startActivity(new Intent(getApplicationContext(),MainActivity.class));
}
finish();
}
}, 3000
);
3)、向导页中只在最后一个页卡中显示跳转按钮
// 隐藏显示按钮
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
//页卡被选中的方法
@Override
public void onPageSelected(int i) {
if(i == mList.size() -1)
btnSub.setVisibility(View.VISIBLE);
else
btnSub.setVisibility(View.GONE);
}
@Override
public void onPageScrollStateChanged(int i) {
}
});