Android开发从入门到放弃(3)使用SharedPreferences保存数据
2016-12-22 22:46
387 查看
在上一篇文章中我在
接着上一节的例子,在MainActivity.java中,重载一个
通过
然后,在
还是通过
此时,我做了个小测试,在另一个Activity中,通过
接下来我们把代码稍加改造,为了能在一个activity中保存数据并且在另一个activity中来读取数据。
下面的代码用于在当app处于停止状态时保存状态到名字为mytest的SharedPreferences配置文件中。
接下来在另一个activity的onCreate方法中读取刚才保存的数据
简单好用。祝你的Android开发之路从入门到放弃,不谢!
onSaveInstanceState方法中暂时保存了Activity的状态,尽管这也比较有用,但是更多情况下,我们更希望持久化地存储一些简单的数据,例如,保存某些用户的设置,或存储当前游戏的最高分。本篇博客我们来使用SharedPreferences来保存点简单的数据。
接着上一节的例子,在MainActivity.java中,重载一个
onPause方法,加入以下代码
@Override protected void onPause() { super.onPause(); SharedPreferences settings = getPreferences(MODE_PRIVATE); SharedPreferences.Editor editor = settings.edit(); editor.putInt(KEY_COUNTER, mCounter); editor.commit(); Log.i("SharedPreferences","SharedPreferences has been writen ,mCounter = " + mCounter); }
通过
getPreferences方法获取一个SharedPreferences对象,在调用SharedPreferences对象的edit方法获取一个SharedPreferences的编辑器对象,然后可以调用putXXX之类的方法来存放特定类型的键值对,最后调用
editor.commit()来保存设置。
然后,在
onCreate方法中来读取SharedPreferences中存储的值。
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SharedPreferences settings = getPreferences(MODE_PRIVATE); int defaultCounter = 0; mCounter = settings.getInt(KEY_COUNTER, defaultCounter); ((TextView)findViewById(R.id.textViewCounter)).setText("Counter: " + Integer.toString(mCounter)); }
还是通过
getPreferences方法来获取SharedPreferences对象,该对象可以直接调用getXXX方法来获取值。
此时,我做了个小测试,在另一个Activity中,通过
getPreferences方法来获取SharedPreferences对象后,是获取不到我们刚才保存的值的。为什么呢?其实还有另一个方法可以获取到SharedPreferences对象,就是
getSharedPreferences(name,mode)方法,第一个name是一个文件名,每个name都对应一个文件,也就意味着我们可以将不同类型的配置项分别存储在不同的文件中,文件的格式是XML,当然,这些基础的功能是Android系统已经提供好的,我们只需要简单地调用一下api就好了。而getPreferences方法会将当前activity类的全名作为name传递给getSharedPreferences方法。
接下来我们把代码稍加改造,为了能在一个activity中保存数据并且在另一个activity中来读取数据。
下面的代码用于在当app处于停止状态时保存状态到名字为mytest的SharedPreferences配置文件中。
public final static String PREF_NAME="mytest"; @Override protected void onPause() { super.onPause(); SharedPreferences settings = getSharedPreferences(PREF_NAME,MODE_PRIVATE); SharedPreferences.Editor editor = settings.edit(); editor.putInt(KEY_COUNTER, mCounter); editor.commit(); Log.i("SharedPreferences","SharedPreferences has been writen ,mCounter = " + mCounter); }
接下来在另一个activity的onCreate方法中读取刚才保存的数据
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); SharedPreferences settings = getSharedPreferences(MainActivity.PREF_NAME,MODE_PRIVATE); int defaultCounter = 0; int mCounter = settings.getInt(MainActivity.KEY_COUNTER,defaultCounter); Toast.makeText(this, mCounter+"", Toast.LENGTH_SHORT).show(); }
简单好用。祝你的Android开发之路从入门到放弃,不谢!
相关文章推荐
- Android开发从入门到放弃(2)保存Activity的状态
- android开发入门-2(使用静态变量传递数据)
- Android游戏开发12:使用SharedPreference与FileInputStream/FileOutputStream保存数据
- Android开发从入门到放弃(1)在Activity之间传递数据
- Android开发从入门到放弃(9)使用ListView显示一个类的数组
- android开发入门-1(使用意图传递数据)
- Android开发-使用SharedPreferences保存数据-常用操作
- Android开发从入门到放弃(7)使用GridLayout
- Android开发从入门到放弃(8)使用ListView显示一个简单的列表
- Android开发从入门到放弃(4)使用RelativiLayout
- android开发入门-4(使用全局变量传递数据)
- Android开发---使用SharedPreferences保存数据
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- Android开发中保存数据的四种方法方法
- [Android开发]Android数据保存之PreferenceActivity
- Android开发中保存数据的四种方法
- 【Android游戏开发十二】(保存游戏数据 [上文])详解SharedPreference 与 FIleInputStream/FileOutputStream将数据存储到SD卡中!
- Android开发之数据保存技术(一)
- Adobe Flash Builder 4.5 Android Air 程序开发系列 之五 保存数据的几种方式