当前位置:操作系统 > 安卓/Android >>

Android文件存储--采用SharedPreferences保存用户偏好设置参数和读取设置参数

Android文件存储--采用SharedPreferences保存用户偏好设置参数和读取设置参数

 


Android SDK支持那些文件存储技术?

1. 使用SharedPreferences保存key-value类型的数据

2. 流文件存储(使用openFileOutput和openFileInput方法,或FileInputStream和FileOutputStream)

3. XML半结构化存储

4. 用JSON保存数组和对象

5.用数据库保存结构化数据

6. 用第三方的面向对象数据库直接保存Java对象。

 


这篇博文主要介绍用SharedPreferences保存key-value对的步骤和读取设置参数的方法

1. 使用Context.getSharedPreferences方法获取SharedPreferences对象,其中存储key-value的文件的名称有getSharedPreferences方法第一个参数指定。

2. 使用SharedPreference.edit方法获取SharedPreferences.Editor对象。

3. 通过SharedPreference.Editor接口的putXxx方法保存key-value对。

4. 通过SharedPreference.Editor.commit方法提交要保存的key-value对。

 

 

 

实例:SharedPreferences

 \

 

 

MainActivity.java


[java]
package com.wwj.setting; 
 
import java.util.Map; 
 
import com.wwj.service.PreferencesService; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.RadioGroup; 
import android.widget.Toast; 
 
public class MainActivity extends Activity { 
    private EditText nameText;      //姓名框  
    private EditText ageText;       //年龄框  
    private RadioGroup radioGroup;  //单选框组  
     
    //业务逻辑类  
    private PreferencesService service; 
     
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        nameText = (EditText)findViewById(R.id.nameText); 
        ageText = (EditText)findViewById(R.id.ageText); 
        radioGroup = (RadioGroup) findViewById(R.id.radioGroup); 
        service = new PreferencesService(this); 
         
        Map<String, String> params = service.getPerferences(); 
        nameText.setText(params.get("name")); 
        ageText.setText(params.get("age")); 
        radioGroup.check(Integer.valueOf(params.get("易做图")));   //设置选择的单选按钮  
         
    } 
     
    /**
     * 在布局中按钮控件指定的onClick方法
     * @param v
     */ 
    public void save(View v) { 
        String name = nameText.getText().toString(); 
        String age = ageText.getText().toString(); 
        Integer 易做图 = radioGroup.getCheckedRadioButtonId(); 
        service.save(name, Integer.valueOf(age), 易做图); 
        Toast.makeText(getApplicationContext(), R.string.success, 1).show(); 
    } 
     

package com.wwj.setting;

import java.util.Map;

import com.wwj.service.PreferencesService;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Toast;

public class MainActivity extends Activity {
 private EditText nameText;  //姓名框
 private EditText ageText;  //年龄框
 private RadioGroup radioGroup; //单选框组
 
 //业务逻辑类
 private PreferencesService service;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        nameText = (EditText)findViewById(R.id.nameText);
        ageText = (EditText)findViewById(R.id.ageText);
        radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
        service = new PreferencesService(this);
       
        Map<String, String> params = service.getPerferences();
        nameText.setText(params.get("name"));
        ageText.setText(params.get("age"));
        radioGroup.check(Integer.valueOf(params.get("易做图"))); //设置选择的单选按钮
       
    }
   
    /**
     * 在布局中按钮控件指定的onClick方法
     * @param v
     */
    public void save(View v) {
     String name = nameText.getText().toString();
     String age = ageText.getText().toString();
     Integer 易做图 = radioGroup.getCheckedRadioButtonId();
     service.save(name, Integer.valueOf(age), 易做图);
     Toast.makeText(getApplicationContext(), R.string.success, 1).show();
    }
   
}

 


PreferencesService.java


[java] 
package com.wwj.service; 
 
import java.util.HashMap; 
import java.util.Map; 
 
import android.content.Context; 
import android.content.SharedPreferences; 
import android.content.SharedPreferences.Editor; 
 
public class PreferencesService { 
    private Context context; 
 
    public PreferencesService(Context context) { 
        this.context = context; 
    } 
 
    /**
     * 保存参数
     * @param name  姓名
     * @param age   年龄  
     * @param 易做图   性别
     */ 
    public

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,