写之前先对SharedPreferences做个简要介绍。
    做软件开发应该都知道,很多软件会有配置文件,里面存放这程序运行当中的各个属性值,由于其配置信息并不多,如果采用数据库来存放并不划算,因为数据库连接跟操作等耗时大大影响了程序的效率,因此我们使用键值这种一一对应的关系来存放这些配置信息。SharedPreferences正是Android中用于实现这中存储方式的技术。
 
SharedPreferences的使用非常简单,能够轻松的存放数据和读取数据。SharedPreferences只能保存简单类型的数据,例如,String、int等。一般会将复杂类型的数据转换成Base64编码,然后将转换后的数据以字符串的形式保存在 XML文件中,再用SharedPreferences保存。

 
    使用SharedPreferences保存key-value对的步骤如下:
 (1)使用Activity类的getSharedPreferences方法获得SharedPreferences对象,
其中存储key-value的文件的名称由getSharedPreferences方法的第一个参数指定。
 (2)使用SharedPreferences接口的edit获得SharedPreferences.Editor对象。
  3)通过SharedPreferences.Editor接口的putXxx方法保存key-value对。
其中Xxx表示不同的数据类型。例如:字符串类型的value需要用putString方法。
 (4)通过SharedPreferences.Editor接口的commit方法保存key-value对。commit方法相当于数据库事务中的提交(commit)操作。


具体代码的书写流程为:
 
A、存放数据信息
1、打开Preferences,名称为setting,如果存在则打开它,否则创建新的Preferences
SharedPreferences settings = getSharedPreferences(“setting”, 0);
2、让setting处于编辑状态
SharedPreferences.Editor editor = settings.edit();
3、存放数据
editor.putString(“name”,”str”);
4、完成提交
editor.commit();
B、读取数据信息
1、获取Preferences
SharedPreferences settings = getSharedPreferences(“setting”, 0);
2、取出数据
String name = settings.getString(“name”,”默认值”);
以上就是Android中SharedPreferences的使用方法,其中创建的Preferences文件存放位置可以在Eclipse中查看:

DDMS->File Explorer //shared_prefs/setting.xml

下面开始介绍代码:

主程序里进行判断是不是首次运行的:

    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        this.requestWindowFeature(Window.FEATURE_NO_TITLE);        //setContentView(R.layout.activity_main);                //判断是否首次运行        SharedPreferences sp = this.getSharedPreferences("sp", 0);        int count = sp.getInt("start_count", 0);           //     Toast.makeText(this, String.valueOf(count)+"", Toast.LENGTH_SHORT).show();                if(count == 0){        Editor editor = sp.edit();        //存入数据        editor.putInt("start_count", ++count);        //提交修改        editor.commit();    //    Toast.makeText(this, "Guide", Toast.LENGTH_SHORT).show();        Intent mIntent = new Intent();mIntent.setClass(SplashActivity.this, GuideActivity.class);SplashActivity.this.startActivity(mIntent);SplashActivity.this.finish();        //mhandler.sendEmptyMessageDelayed(SWITCH_GUIDE, 100);        }        else        {      //  Toast.makeText(this, "Welcome", Toast.LENGTH_SHORT).show();        Intent mIntent = new Intent();mIntent.setClass(SplashActivity.this, Welcome.class);SplashActivity.this.startActivity(mIntent);SplashActivity.this.finish();        }            }

若是首次运行,跳转到GuideActivity类执行:

import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.view.Window;import android.widget.Button;import android.widget.LinearLayout;public class GuideActivity extends Activity implements OnClickListener{private ViewPager mViewPager;private PagerAdapter mAdapter;private List mViews = new ArrayList();// TABprivate Button mEnterButton;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);initView();initEvents();}private void initEvents(){mViewPager.setOnPageChangeListener(new OnPageChangeListener(){@Overridepublic void onPageSelected(int arg0){}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2){}@Overridepublic void onPageScrollStateChanged(int arg0){}});}private void initView(){mViewPager = (ViewPager) findViewById(R.id.id_viewpager);LayoutInflater mInflater = LayoutInflater.from(this);View tab01 = mInflater.inflate(R.layout.tab01, null);View tab02 = mInflater.inflate(R.layout.tab02, null);View tab03 = mInflater.inflate(R.layout.tab03, null);View tab04 = mInflater.inflate(R.layout.tab04, null);mViews.add(tab01);mViews.add(tab02);mViews.add(tab03);mViews.add(tab04);mEnterButton=(Button)tab04.findViewById(R.id.imgbtn_enter);mEnterButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent(GuideActivity.this,Welcome.class);startActivity(intent);GuideActivity.this.finish();}});mAdapter = new PagerAdapter(){@Overridepublic void destroyItem(ViewGroup container, int position,Object object){container.removeView(mViews.get(position));}@Overridepublic Object instantiateItem(ViewGroup container, int position){View view = mViews.get(position);container.addView(view);return view;}@Overridepublic boolean isViewFromObject(View arg0, Object arg1){return arg0 == arg1;}@Overridepublic int getCount(){return mViews.size();}};mViewPager.setAdapter(mAdapter);}@Overridepublic void onClick(View v) {}}

否则执行Welcome类中方法:

import android.app.Activity;import android.os.Bundle;public class Welcome extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.welcome);}}

activity_main.xml文件内容如下:

        

还需要记得在AndroidMainfest.xml文件中声明类文件:

                                                                                                        


运行效果如图:

(图片仅供参考)


文章参考:

http://blog.csdn.net/yayun0516/article/details/49019421

http://blog.sina.com.cn/s/blog_7ab107b00100u78t.html

源码下载

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
  4. Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
  5. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  6. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  7. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  8. Android(安卓)Studio目录结构详细解答
  9. Android广播接收器(三)

随机推荐

  1. Android(安卓)SQLite
  2. 让Qt应用程序跑在Android上
  3. android开发(46) 使用 textview实现文字
  4. Android源码阅读分析:从Activity开始(二)—
  5. Android(安卓)Project和app中两个build.g
  6. 通過XML設置屏幕方向(android:screenOrie
  7. Android(安卓)H5和App交互以及打开图库上
  8. Android中Fragment的应用(android官方教程
  9. 【Android】Uri、UriMatcher、ContentUri
  10. android 工程师 你必须知道的