温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

安卓-SharedPreferences和Editor保存数据

发布时间:2020-07-09 22:11:59 来源:网络 阅读:607 作者:sy月牙儿 栏目:移动开发


    SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个key-value(键值对)SharedPreferences常用来存储一些轻量级的数据。


    在做连连看游戏的时候,需要保存游戏进度,所以稍微用了一下,这里做个小结。


    我的做法是,首先给出如下定义:

private SharedPreferences sp; private static String MY_APP="MYAPP";

    然后再写两个方法,执行数据的读写操作。

/**  * 保存数据  */ public void saveData(String key,int value) {	// 获取SharedPreferences对象	sp = MainActivity.this.getSharedPreferences(MY_APP, MODE_PRIVATE);	// 存入数据,除了putInt还有putString等其他方法,可以自己挖掘一下~	//另外,每次存入的就是“key-value”形式的键值对,很好理解	Editor editor = sp.edit();	editor.putInt(key, value);	editor.commit(); } /**  * 读取数据,找到返回数据内容,否则返回-1  */ public int readData(String key) {	sp = MainActivity.this.getSharedPreferences(MY_APP, MODE_PRIVATE);	int v=sp.getInt(key, 0);	if ( v != 0) {	return v;	} else {	return -1;	} }

    然后在程序里就可以使用这两个方法来存取数据了。如果要存的数据项不多但是比较频繁的话,可以把key也定义为静态变量,这样的话使用起来比较方便,修改也比较容易。

    这里使用的putInt和readData返回值是我根据自己程序的需要进行设置的,具体要怎么写以及是否需要加一些约束条件,要根据自己的程序做适当的调整,需求明确的话,这个做起来也很easy的。


下面是一段完整的代码

package com.test.leetlesharedpreferences; import android.os.Bundle; import android.app.Activity; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.view.Menu; public class MainActivity extends Activity {	private SharedPreferences sp;	private static String MY_APP="MYAPP";	private static String MY_KEYINT="keyint";	private static String MY_KEYSTRING="keystring";     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);                           System.out.println("readInt(MY_KEYINT) = "+Integer.toString(readInt(MY_KEYINT)));         System.out.println("readString(MY_KEYSTRING) = "+readString(MY_KEYSTRING));         System.out.println("--------我是分割线----------------------");                  saveData(MY_KEYINT, 100000);         saveData(MY_KEYSTRING, "那么问题来了");         System.out.println("readInt(MY_KEYINT) = "+Integer.toString(readInt(MY_KEYINT)));         System.out.println("readString(MY_KEYSTRING) = "+readString(MY_KEYSTRING));              }     @Override     public boolean onCreateOptionsMenu(Menu menu) {         // Inflate the menu; this adds items to the action bar if it is present.         getMenuInflater().inflate(R.menu.main, menu);         return true;     }               /**      * 两个写数据的方法      */     private void saveData(String key,int value)     {     	sp=this.getSharedPreferences(MY_APP, MODE_PRIVATE);     	Editor editor=sp.edit();     	editor.putInt(key, value);     	editor.commit();     }     private void saveData(String key,String value)     {     	sp=this.getSharedPreferences(MY_APP, MODE_PRIVATE);     	Editor editor=sp.edit();     	editor.putString(key, value);     	editor.commit();     }        /**      * 两个读数据的方法      */     private int readInt(String key)     {     	sp=MainActivity.this.getSharedPreferences(MY_APP, MODE_PRIVATE);     	return sp.getInt(key, 0);     }          private String readString(String key)     {     	sp=this.getSharedPreferences(MY_APP, MODE_PRIVATE);     	return sp.getString(key, "没有数据");     } }

    结果如下

安卓-SharedPreferences和Editor保存数据


2015.01.02



附件:http://down.51cto.com/data/2365259
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI