sharedpreferences:android 五大存储方式之一,存储数据类型为: K V 文件已xml形式保存
项目应用:1.导航页是否第一次进入
2.用户信息,登陆信息
好处:只要不卸载软件,或者不手动清除,基本上不会被清除
项目应用: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(); } }最后就是,程序员们,别忘了加权限啊。。。。。