六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 44|回复: 0

Android--SharedPreference应用

[复制链接]

升级  30%

3

主题

3

主题

3

主题

童生

Rank: 1

积分
15
 楼主| 发表于 2013-1-15 02:25:38 | 显示全部楼层 |阅读模式
注: 其它应用调用此参数文件://创建需要调用的参数保存文件应用的Context//第一参数为保存文件所存在的包名//第二个参数表示 忽略安全级别//注: 这里的 this.getContext()是得到当前应用的上下文,因为本测试环境是继承 AndroidTestCase ,如果在Activity中可以直接使用createPackageContext方法Context context = this.getContext().createPackageContext("cn.android.preference", this.getContext().CONTEXT_IGNORE_SECURITY);//通过创建的context得到preferences对象SharedPreferences preferences = context.getSharedPreferences("user", context.MODE_WORLD_READABLE);//通过对象取得文件里面的值,也可以写入,这里就不再测试了String name = preferences.getString("name", "abc");//将得到的值方在日志中,以便看程序是否正确执行Log.e("TestSharedPreferenceParser",name);/** 需要注意的是:此文件在被其它应用读取的时候,其权限必须包含 context.MODE_WORLD_READABLE,否则无法找到  */-------------------------------------------------------------------------------------------------------------------------------------》package cn.android.preference;import android.app.Activity;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;/** * SharedPreferences实现参数化的数据保存与读取 * @author Administrator * * 2010-6-30 下午02:35:44 */public class PreferenceActivity extends Activity {//定义一个文本输入框,用于得到输入的name值private EditText nameText;//定义一个文本输入框,用于得到输入的age值private EditText ageText;@Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                //通过id得到id为name输入框        nameText = (EditText) findViewById(R.id.name);        //通过id得到id为age输入框        ageText = (EditText) findViewById(R.id.age);                //通过id得到保存按钮        Button saveButton = (Button) findViewById(R.id.save);        //通过id得到读取按钮        Button readButton = (Button) findViewById(R.id.read);                //为保存按钮添加事件        saveButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//通过Activity自带的getSharedPreferences方法,得到SharedPreferences对象//第一个参数表示保存后 xml 文件的名称(底层实现是将数据保存到xml文档中)。//第二个参数表示xml文档的权限为私有,并且重新写的数据会覆盖掉原来的数据SharedPreferences preferences = getSharedPreferences("user", PreferenceActivity.MODE_WORLD_READABLE);//通过preferences得到它的编辑器对象editEditor edit = preferences.edit();//通过编辑器将name属性和对应的nameText中输入的值写入到xml文档中edit.putString("name", nameText.getText().toString());//通过编辑器将age属性和对应的ageText中输入的值写入到xml文档中String ageStr = ageText.getText().toString();if(ageStr != null || "".equals(ageStr.trim()))edit.putInt("age", new Integer(ageStr));//添加数据完成后,提交编辑器的添加操作edit.commit();//提示用户保存成功Toast.makeText(PreferenceActivity.this, R.string.save_success, Toast.LENGTH_LONG).show();}                });                //为读取按钮添加时间        readButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//通过Activity自带的getSharedPreferences方法,得到SharedPreferences对象//此时的第一个参数表示当前应用中的user.xml文件//如果只读的话,第二个参数没有什么意义,但方法参数需要,可以随便写SharedPreferences preferences = getSharedPreferences("user", PreferenceActivity.MODE_PRIVATE);//得到文件中的name标签值,第二个参数表示如果没有这个标签的话,返回的默认值String name = preferences.getString("name", "");//得到文件中的age标签值,第二个参数表示如果没有这个标签的话,返回的默认值Integer age = preferences.getInt("age", 0);//将读取的name值显示在文本编辑框nameText中nameText.setText(name);//将读取的age值显示在文本编辑框ageText中ageText.setText(age + "");//提示用户读取成功Toast.makeText(PreferenceActivity.this, R.string.read_success, Toast.LENGTH_LONG).show();}                });    }}------------------------------------------------------------------>页面布局mian.xml文件:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"><LinearLayout android:orientation="horizontal"android:layout_width="fill_parent"    android:layout_height="wrap_content"><TextView      android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:text="@string/name"/>    <EditTextandroid:layout_width="fill_parent"     android:layout_height="wrap_content"     android:id="@+id/name"/>       </LinearLayout>        <LinearLayout android:orientation="horizontal"android:layout_width="fill_parent"    android:layout_height="wrap_content"><TextView      android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:text="@string/age"/>    <EditTextandroid:layout_width="fill_parent"     android:layout_height="wrap_content"     android:id="@+id/age"/>       </LinearLayout>        <LinearLayout android:orientation="horizontal"android:layout_width="fill_parent"    android:layout_height="wrap_content">        <Button   android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:text="@string/save"     android:id="@+id/save" />    <Button   android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:text="@string/read"     android:id="@+id/read" />       </LinearLayout>    </LinearLayout>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表