android利用SharedPreferences来保存用户参数及读取

软件需求:用户输入姓名和年龄点击保存按钮将信息保存到xml中当再次登陆的时候输入的信息显示在文本框中

Activity文件

 

package com.example.shareperences;

import java.util.Map;

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

import com.example.service.PrefercesService;

public class MainActivity extends Activity {
    private Button button;
    private EditText name,age;
    private PrefercesService prefercesService;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		button=(Button)this.findViewById(R.id.button);
		name=(EditText)this.findViewById(R.id.name);
		age=(EditText)this.findViewById(R.id.age);
		prefercesService=new PrefercesService(this);
		Map<String,String> params=prefercesService.getPreferences();
		name.setText(params.get("name"));
		age.setText(params.get("age"));
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
	public void save(View v){
		/*
		 * 如果想在Activity中得到SharedPreferences对象则可以用方法
		 * this.getPreferences(mode)这里只有一个参数 文件存储类型,此时文件的名字默认为
		 * 当前activity的名字 不包括包名
		 */
		String nameString=name.getText().toString();
		String ageString=age.getText().toString();
		prefercesService.save(nameString,Integer.parseInt(ageString));
	    Toast.makeText(MainActivity.this, R.string.success, Toast.LENGTH_LONG).show();
	}

}

package com.example.service;

import java.util.HashMap;
import java.util.Map;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

public class PrefercesService {
    private Context context;
	public PrefercesService(Context context) {
		super();
		this.context = context;
	}
  /**
   * 保存参数 
   * @param name 姓名
   * @param age  年龄
   */
	public void save(String name, int age) {
		//第一个参数 指定名称 不需要写后缀名 第二个参数文件的操作模式
		SharedPreferences preferences=context.getSharedPreferences("itcast", Context.MODE_PRIVATE);
		//取到编辑器
		Editor editor=preferences.edit();
		editor.putString("name", name);
		editor.putInt("age", age);
		//把数据提交给文件中
		editor.commit();
	}
	/**
	 * 获取各项配置参数
	 * @return
	 */
   public Map<String,String> getPreferences(){
	 SharedPreferences pre=context.getSharedPreferences("itcast", Context.MODE_PRIVATE);
     //如果得到的name没有值则设置为空 pre.getString("name", "");
     Map<String,String> params=new HashMap<String,String>();
     params.put("name", pre.getString("name", ""));
     params.put("age", String.valueOf(pre.getInt("age", 0)));
	   
	   return params;
	   
	   
   }
}


布局文件注意button应该这样设置

<Button 
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:id="@+id/button"
         android:text="@string/save"
         android:onClick="save"
         />


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值