Android 使用简单又方便的SharedPreferences让导航页面只进入一次 , 提高用户对app的体验度

sharedpreferences:android 五大存储方式之一,存储数据类型为: K  V  文件已xml形式保存
        项目应用:1.导航页是否第一次进入
       2.用户信息,登陆信息
              好处:只要不卸载软件,或者不手动清除,基本上不会被清除
                (写这个功能,主要是为了解决客户把app刚下载下来,软件公司为了介绍app,使用的导航页面,如果每次进入都显示导航页面,用户的体验度会变得很差,所以为大家写了一个只进入一次的存储功能)
具体代码如下:
xml布局:(本导航页是写了一个viewpager,作为导航页面)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.view.ViewPager
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/mVp"
        ></android.support.v4.view.ViewPager>

    <Button
        android:layout_width="180dp"
        android:layout_height="30dp"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="50dp"
        android:layout_centerHorizontal="true"
        android:text="争做接盘侠"
        android:textSize="15sp"
        android:gravity="center"
        android:id="@+id/mBtn_skip"
        android:visibility="gone"
        />
</RelativeLayout>
下面是主要实现类:
            这个是一个存储信息的一个工具类,工具类里面写的有这个存储类的介绍,在这里不做解释了。
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;

public class SharedUtils extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        String str=new SharedUtils().getShared("tag", SharedUtils.this);
        if(str.equals("")){
            Intent intent=new Intent(SharedUtils.this, MainActivity.class);
            startActivity(intent);
            finish();
        }else {
            Intent intent=new Intent(SharedUtils.this, B.class);
            startActivity(intent);
            finish();
        }
    }

    private String name="jianbao";
    private String touxiang = "touxiang";
    /*
     * 保存数据的方法
     * */
    public void saveShared(String key,String value,Context ctx){
        SharedPreferences shared=ctx.getSharedPreferences(name,0);
        Editor edit = shared.edit();
        edit.putString(key, value);
        edit.commit();
    }

    /*
     * 从本地获取数据
     * */
    public String getShared(String key,Context ctx){
        String str=null;
        SharedPreferences shared = ctx.getSharedPreferences(name, 0);
        str = shared.getString(key, "");
        return str;
    }
}
下面是一个全局类:(MyAplication,每当启动app,就会优先加载这个类,把SharedUtils工具类在里面实例化一遍,让它优先加载)

import android.app.Application;
public class MyApplication extends Application {
    public SharedUtils utils;
    @Override
    public void onCreate() {
        super.onCreate();
        utils = new SharedUtils();
    }
}
这个是导航页的主要实现类:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import java.util.ArrayList;
public class MainActivity extends Activity {
    private Button skip;
    private ViewPager mVp;
    private ArrayList<ImageView> list = new ArrayList<ImageView>();
    private String tag = "guide";
    private SharedUtils utils;
    private int [] array={R.mipmap.ic_launcher,
            R.mipmap.ic_launcher,
            R.mipmap.ic_launcher,
            R.mipmap.ic_launcher,
            R.mipmap.ic_launcher};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.e("tag","WelcomeActivity on Create");
        setContentView(R.layout.activity_main);
        utils = new SharedUtils();
        utils.saveShared("tag", tag, this);
        initView();
    }

    private void initView() {
        mVp = (ViewPager) findViewById(R.id.mVp);
        skip= (Button) findViewById(R.id.mBtn_skip);

        for (int i =0;i<array.length;i++){
            ImageView iv = new ImageView(this);
            iv.setImageResource(array[i]);
            iv.setScaleType(ImageView.ScaleType.FIT_XY);
            list.add(iv);
        }
        mVp.setAdapter(new ViewPagerAdapter(list));
        mVp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }

            @Override
            public void onPageSelected(int position) {
                if(position==4){
                    skip.setVisibility(View.VISIBLE);
                }else{
                    skip.setVisibility(View.GONE);
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

        skip.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, B.class);
                startActivity(intent);
                finish();
            }
        });
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        finish();
    }
}
最后就是,程序员们,别忘了加权限啊。。。。。


猜你喜欢

转载自blog.csdn.net/RcyYangYang/article/details/79414544