android 通过 SharedPreferences判断应用是否显示引导页

欢迎页面WelcomeActivity xml文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".WelcomeActivity" >
    <ImageView
        android:id="@+id/ivWelcome"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/login_pic"
        android:scaleType="fitXY"/>
</RelativeLayout>

欢迎页面WelcomeActivity代码部分

public class WelcomeActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_welcome);
        load();
    }
    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
            case 1:
                nextActivity();
                break;
            default:
                break;
            }
            super.handleMessage(msg);
        }
        
    };
    /**
     * 通过获取SharedPreferences的值判断,跳转到下一个页面
     * */
    private SharedPreferences sp;
    private void nextActivity(){
        //磁盘存储 用于持久化
        sp=super.getSharedPreferences("app_param", Context.MODE_PRIVATE);
        int use=sp.getInt("use",0);//默认值 0
        if (use==0) {
            goIndex();
        }else{
            goHome();
        }
    }
    /**
     * 跳转索引页
     * */
    private void goIndex(){
        Intent intent=new Intent(this,HelperActivity.class);
        startActivity(intent);
        finish();
    }
    /**
     * 直接进入应用页面
     * */
    private void goHome(){
        Intent intent=new Intent(this,NewsHomeFragmentActivity.class);
        startActivity(intent);
        finish();
    }
    private void load(){
        //使用线程
        new Thread(new Runnable() {
            @Override
            public void run() {
                //访问数据库(读取channel数据,个人设置信息,登录用户信息)
                //启动后台服务Service
                try {
                    Thread.sleep(1000);//睡眠一秒钟,模拟数据读取
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                handler.sendEmptyMessage(1);//arg1的值线程中的内容执行完全后
            }
        }).start();
    }
}

引导页面的xml文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".HelperActivity" >
    <android.support.v4.view.ViewPager
        android:id="@+id/vpHelper"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </android.support.v4.view.ViewPager>
</RelativeLayout>

引导页面的代码部分

public class HelperActivity extends Activity implements OnPageChangeListener{
    private List<ImageView> imgList=new ArrayList<ImageView>();
    private ViewPager vpHelper;
    private HelperImgPageAdapter adapter;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_helper);
        init();
    }
    private void init(){
        setList();        
        vpHelper=(ViewPager)super.findViewById(R.id.vpHelper);
        adapter=new HelperImgPageAdapter(imgList, this);
        vpHelper.setAdapter(adapter);
        vpHelper.setOnPageChangeListener(this);
    }
    /**
     * 加载引导页面的数据
     * */
    private void setList(){
        ImageView img1=new ImageView(this);
        img1.setImageResource(R.drawable.help_detail1);
        img1.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
        ImageView img2=new ImageView(this);
        img2.setImageResource(R.drawable.help_detail2);
        img2.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
        ImageView img3=new ImageView(this);
        img3.setImageResource(R.drawable.help_detail3);
        img3.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
        ImageView img4=new ImageView(this);
        img4.setImageResource(R.drawable.help_detail4);
        img4.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
        ImageView img5=new ImageView(this);
        img5.setImageResource(R.drawable.help_detail5);
        img5.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
        imgList.add(img1);
        imgList.add(img2);
        imgList.add(img3);
        imgList.add(img4);
        imgList.add(img5);
    }
    
    /**
     * ViewPager监听事件
     * */
    @Override
    public void onPageScrollStateChanged(int arg0) {//滚动状态改变
        
    }
    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {
    }
    private SharedPreferences sp;
    @Override
    public void onPageSelected(int position) {//选择状态
        if (position==5) {//判断是否滑动结束
            goHome();
            sp=super.getSharedPreferences("app_param", Context.MODE_PRIVATE);
            sp.edit().putInt("use", 1).commit();//修改 SharedPreferences的参数
            finish();
        }
    }
    /**
     * 跳转到应用主页面
     * */
    private void goHome(){
        Intent intent=new Intent(this,NewsHomeFragmentActivity.class);
        startActivity(intent);
    }
}

引导页的ViewPager的适配器adapter

public class HelperImgPageAdapter extends PagerAdapter{
    private List<ImageView> list;
    private Context context;
    public HelperImgPageAdapter(List<ImageView> list, Context context) {
        this.list = list;
        this.context = context;
    }
    @Override
    public int getCount() {
        return list==null?0:list.size();
    }
    @Override
    public boolean isViewFromObject(View view, Object obj) {
        return view==obj;
    }
    /**
     * 移除,清理
     * */
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView(list.get(position));
    }
    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        ImageView view=list.get(position);
         container.addView(view);
        return view;
    }
}

 

posted @ 2015-07-21 14:27  也猫不要吃鱼  阅读(376)  评论(0)    收藏  举报