安卓开发_数据存储技术_SharedPreferences类
2014-08-23 14:31
567 查看
SharedPreferences类 供开发人员保存和获取基本数据类型的键值对。
该类主要用于基本类型,例如:booleans,ints,longs,strings。在应用程序结束后,数据仍旧会保存。
有两种方式可以获得SharedPreferences对象
1、getSharedPreferences(): 如果需要多个使用名称来区分的共享文件,则可以使用该方法,其第一个参数就是共享文件的名称。
对于使用同一个名称获得的多个SharedPreferences引用,其指向同一个对象
2、getPreferences(): 如果activity仅需要一个共享文件,则可以使用该方法。因为只有一个共享文件,它并不需要提供名称。
向SharedPreferences类中增加值的方法如下
1、调用SharedPreferences类的edit()方法获得SharedPreferences对象
2、调用诸如putString(),putInt()等方法增加相应类型的值
3、使用commit()方法提交新的值
从SharedPreferences类中读取值时,主要使用该类中定义的getXXX()方法。
下面用一个简单的例子来练习SharedPreferences类的使用
首先看布局文件:
View Code
一个简单的登录界面。
再看JAVA文件
效果图:
![](http://images0.cnblogs.com/blog2015/493196/201505/231430133907445.gif)
SharedPreferences类存储的数据放在shared_prefs文件夹中
![](http://images2015.cnblogs.com/blog/493196/201509/493196-20150909134742090-514900083.jpg)
data/data/包名 找到你的包名 里面有个shared_prefs文件,保存的文件data.xml就是 SharedPreferences类类保存的数据
该数据是以Map键值对的形式存放在xml文件中的
![](http://images2015.cnblogs.com/blog/493196/201509/493196-20150909134802340-995743978.jpg)
-------------------------------------------------------------------
相关知识:
安卓开发_数据存储技术_内部存储
该类主要用于基本类型,例如:booleans,ints,longs,strings。在应用程序结束后,数据仍旧会保存。
有两种方式可以获得SharedPreferences对象
1、getSharedPreferences(): 如果需要多个使用名称来区分的共享文件,则可以使用该方法,其第一个参数就是共享文件的名称。
对于使用同一个名称获得的多个SharedPreferences引用,其指向同一个对象
2、getPreferences(): 如果activity仅需要一个共享文件,则可以使用该方法。因为只有一个共享文件,它并不需要提供名称。
向SharedPreferences类中增加值的方法如下
1、调用SharedPreferences类的edit()方法获得SharedPreferences对象
2、调用诸如putString(),putInt()等方法增加相应类型的值
3、使用commit()方法提交新的值
从SharedPreferences类中读取值时,主要使用该类中定义的getXXX()方法。
下面用一个简单的例子来练习SharedPreferences类的使用
首先看布局文件:
<?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:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="66dp" android:layout_marginTop="64dp" android:text="用户名:" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView1" android:layout_below="@+id/textView1" android:layout_marginTop="32dp" android:text="密码:" /> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/textView1" android:layout_alignBottom="@+id/textView1" android:layout_toRightOf="@+id/textView1" android:ems="10" /> <EditText android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/textView2" android:layout_alignBottom="@+id/textView2" android:layout_alignLeft="@+id/editText1" android:ems="10" android:inputType="textPassword" > <requestFocus /> </EditText> <Button android:id="@+id/btn_load" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editText2" android:layout_below="@+id/editText2" android:layout_marginTop="29dp" android:text="登录" /> </RelativeLayout>
View Code
一个简单的登录界面。
再看JAVA文件
package data; import com.example.allcode.R; import android.app.Activity; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class Sharedpreference_use extends Activity{ private EditText name; private EditText password; private Button load; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.data_sharedpreferences); name = (EditText) findViewById(R.id.editText1); password = (EditText) findViewById(R.id.editText2); load = (Button) findViewById(R.id.btn_load); //登录按钮,将用户名和密码存到SharedPreferences对象中存储数据 //通过toast显示存储的用户名和密码 load.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String str_name = name.getText().toString(); //获取用户名编辑框的数据 String str_password = password.getText().toString(); //获取密码框中的数据 //获得私有类型的SharedPreferences SharedPreferences sp = getSharedPreferences("mrsoft", MODE_PRIVATE); Editor editor = sp.edit(); //获取Editor对象 editor.putString("username", str_name); //添加用户名 editor.putString("uesrpassword", str_password); //添加密码 editor.commit(); //提交数据 //如果在另一个activity中获取SharedPreferences存储的数据 ,要加上下面这行代码,在同一activity种则不需要 //SharedPreferences sp = getSharedPreferences("mrsoft", MODE_PRIVATE); String get_name = sp.getString("username","0"); String get_password = sp.getString("uesrpassword","1"); Toast.makeText(Sharedpreference_use.this, "通过SharedPreferences存储的用户名为:"+get_name+"密码为:"+get_password, 1).show(); //将获取的用户名和密码的数据通过toast显示出来 } }); } }
效果图:
![](http://images0.cnblogs.com/blog2015/493196/201505/231430133907445.gif)
SharedPreferences类存储的数据放在shared_prefs文件夹中
![](http://images2015.cnblogs.com/blog/493196/201509/493196-20150909134742090-514900083.jpg)
data/data/包名 找到你的包名 里面有个shared_prefs文件,保存的文件data.xml就是 SharedPreferences类类保存的数据
该数据是以Map键值对的形式存放在xml文件中的
![](http://images2015.cnblogs.com/blog/493196/201509/493196-20150909134802340-995743978.jpg)
-------------------------------------------------------------------
相关知识:
安卓开发_数据存储技术_内部存储
相关文章推荐
- 安卓开发_数据存储技术_内部存储
- 安卓开发_数据存储技术_外部存储
- 安卓开发_数据存储技术_sqlite
- 安卓高效开发:联系人数据存储与操作基本
- 网络爬虫开发技术——数据存储以及多线程
- 14天学会安卓开发(第七天)数据存储之SharedPreferences与文件
- 安卓开发--sharedpreferences存储数据
- 安卓开发之数据存储
- 安卓开发之数据存储方式
- 【美女那些图】iOS开发技术分享(1)— iOS本地数据存储
- 【安卓开发】为什么不能往Android的Application对象里存储数据
- 服务端开发指南与最佳实战 | 数据存储技术 | MySQL(04) 索引使用的注意事项
- 【Cocos2d-x游戏开发】Cocos2d-x中的数据存储技术
- 【Android应用开发技术:数据存储】SharedPreferences
- 安卓开发从零开始第7篇——ADB的命令行使用——查看Android studio的Demo文件数据存储Sqlite
- 安卓开发使用Sqllite数据库动态存储数据
- 安卓开发数据持久化技术——内部文件存储
- 【Android应用开发技术:数据存储】数据库
- 【安卓开发】为什么不能往Android的Application对象里存储数据
- 【Android应用开发技术:数据存储】章节列表