实现思路:
1.n个引导的“欢迎页面”用WelcomeActivity中的ViewPager来承载。
2.在引导页面后必须还要具备主界面Activity。
3.WelcomeActivity中要读写SharedPreferences -- 记录App是否第 1 次使用?
4.只要app运行过后,没有下载,那么保存在SharedPreferences中的数据就不会丢失,
5.“连续摁2次回退”结束(“app回到后台”),界面上加载手机的Home界面,实现方法?
1.用viewpager来加载页面
a.准备页面图片
b.在布局文件中部署ViewPager 注意:一定要引用v4包中的ViewPager
c.在activity中绑定数据源,展示ViewPager上的页面:
1.查找到控件,并且准备View
2.设置适配器
3.将适配器绑定到ViewPager上,即可显示界面
4.在适配器中:重写 4个方法:
getCount()、isViewFromObject()、destoryItem()、
insatntiateItem(){
ImageView iv = new ImageView(context); //此处的context可以通过构造方法传过来的
int[] imgs = ((WelcomeActivity)context).getImgs(); //在Welcome中要提供getImgs()方法来获取资源数组
iv.setImageResource(imgs[position]); //将当前页面的View加载到当前的ViewPager上
container.addView(iv);
return iv;
}
2.在引导页面后必须还要具备主界面Activity。
1.准备xml文件中的资源
2.加载主界面的时候是在已经加载完成来引导页面之后,所以这个时候就需要判断,是否已经引导完成。
在Adapter中自定义一个点击事件的监听器,利用回调的思想在WelcomeActivity中来判断是否已经加载到最后一页:
a.如果已经加载到最后一页,并且在SharedPreferences中记录,
//只有点击最后 1 页的时候,才记录当前app已经使用过,下次加载就略过,直接进入主界面MainActivity
if (position == imgs.length - 1) {
//1.记录Sharedpreferences
SharedPreferences sp = getSharedPreferences("used_log", MODE_PRIVATE);
//2.开启编辑器
SharedPreferences.Editor editor = sp.edit();
editor.putBoolean("isRun", true);
//3.提交 "同步提交"
//editor.commit(); //同步提交
editor.apply(); //异步提交
//将欢迎页面销毁
finish();
}
b.再在MainActivity中去提取SharedPreferences的数据的值,如果为true,就加载主页面,为false就展示引导页面。
//如果是首次运行,则SharedPreferences的used_log文件就没有记录isRun的值,则将去默认值
if (!isRun){
//页面跳转到到引导页面
startActivity(new Intent(this,WelcomeActivity.class));
}
setContentView(R.layout.activity_main);