zoukankan      html  css  js  c++  java
  • [转]Android数据存储SharedPreferences的使用

    本文转自:http://yaku2688.iteye.com/blog/1185348

    SharedPreferences配置文件为XML文件,路径:/data/data/<package name>/shared_prefs目录下

    关键代码:

    Java代码  
    1. //第一个参数用于指定该文件的名称,第二个参数指定文件的操作模式,共有四种操作模式。   
    2. //如果希望生成的xml文件能被其他应用读和写,可以指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。   
    3. //另外Activity还提供了另一个getPreferences(mode)方法操作SharedPreferences,这个方法默认使用当前类不带包名的类名作为文件的名称。   
    4. SharedPreferences perferences = getSharedPreferences("yaku", Context.MODE_PRIVATE);     
    5. Editor edit = perferences.edit();//获得编辑器   
    6. edit.putString("name""我是内容");     
    7. edit.putInt("age"20);     
    8. edit.commit();//提交内容  

    获取数据:

    Java代码  
    1. SharedPreferences preference = getSharedPreferences("yaku", Context.MODE_PRIVATE);     
    2. String nameStr = preference.getString("name""");//如果取不到值就取值后面的参数      
    3. int ageStr = preference.getInt("age"0);     
    4.   
    5. //其他应用要访问上面应用的preference,首先需要创建上面应用的Context,然后通过Context 访问preference    
    6. Context context = createPackageContext("cn.yaku.action", Context.CONTEXT_IGNORE_SECURITY);   
    7. SharedPreferences perferences = context.getSharedPreferences("yaku", Context.MODE_WORLD_READABLE);   
    8. String name = perferences.getString("name""");   
    9. int age = perferences.getInt("age"0);   
    10.   
    11. //如果不通过创建Context访问其他应用的preference,也可以以读取xml文件方式直接访问其他应用preference对应的xml文件,如:    
    12. File xmlFile = new File("/data/data/<package name>/shared_prefs/yaku.xml");  

     示例代码:

    Java代码  
    1. package com.yaku.SharedPreferences;   
    2.   
    3. import com.yaku.test.R;   
    4.   
    5. import android.app.Activity;   
    6. import android.content.Context;   
    7. import android.content.SharedPreferences;   
    8. import android.content.SharedPreferences.Editor;   
    9. import android.os.Bundle;   
    10. import android.view.View;   
    11. import android.view.View.OnClickListener;   
    12. import android.widget.Button;   
    13. import android.widget.EditText;   
    14. import android.widget.Toast;   
    15.   
    16. /**  
    17.  * SharedPerferences的使用  
    18.  * @author Administrator  
    19.  */  
    20. public class ShareActivity extends Activity {   
    21.     private EditText name;   
    22.     private EditText age;   
    23.     private Button sure;   
    24.     private Button recover;   
    25.     private Button clear;   
    26.     protected void onCreate(Bundle savedInstanceState) {   
    27.         // TODO Auto-generated method stub   
    28.         super.onCreate(savedInstanceState);   
    29.         setContentView(R.layout.sharedperference);   
    30.            
    31.         name = (EditText)findViewById(R.id.name);   
    32.         age = (EditText)findViewById(R.id.age);   
    33.         sure = (Button)findViewById(R.id.sure);   
    34.         recover = (Button)findViewById(R.id.recover);   
    35.         clear = (Button)findViewById(R.id.clear);   
    36.         //保存信息到yaku.xml文件   
    37.         sure.setOnClickListener(new OnClickListener() {   
    38.             @Override  
    39.             public void onClick(View v) {   
    40.                 String nameStr = name.getText().toString();   
    41.                 String ageStr = age.getText().toString();   
    42.                 if(!"".equals(nameStr)&&nameStr!=null && !"".equals(ageStr)&&ageStr!=null){   
    43.                     SharedPreferences perferences = getSharedPreferences("yaku", Context.MODE_PRIVATE);   
    44.                     Editor edit = perferences.edit();   
    45.                     edit.putString("name", nameStr);   
    46.                     edit.putInt("age", Integer.parseInt(ageStr));   
    47.                     edit.commit();   
    48.                     Toast.makeText(ShareActivity.this"OK"0).show();   
    49.                 }   
    50.             }   
    51.         });   
    52.         //恢复保存的数据   
    53.         recover.setOnClickListener(new OnClickListener() {   
    54.             @Override  
    55.             public void onClick(View v) {   
    56.                 SharedPreferences preference = getSharedPreferences("yaku", Context.MODE_PRIVATE);   
    57.                 String nameStr = preference.getString("name""");//如果取不到值就取值后面的参数   
    58.                 int ageStr = preference.getInt("age"0);   
    59.                 name.setText(nameStr);   
    60.                 age.setText(String.valueOf(ageStr));   
    61.             }   
    62.         });   
    63.         //清除数据   
    64.         clear.setOnClickListener(new OnClickListener() {   
    65.             @Override  
    66.             public void onClick(View v) {   
    67.                 name.setText(null);   
    68.                 age.setText(null);   
    69.             }   
    70.         });   
    71.     }   
    72. }  
  • 相关阅读:
    uoj35 后缀排序
    bzoj1026windy数
    poj2761 feed the dog
    codevs2875RY哥查字典
    bzoj1683[Usaco2005 Nov]City skyline 城市地平线
    codevs2464超级麻将
    初赛乱记
    让NOI Linux变得可用
    [HAOI2015] 按位或
    一句话CF
  • 原文地址:https://www.cnblogs.com/freeliver54/p/2307133.html
Copyright © 2011-2022 走看看