android利用SharedPreferences来保存用户参数及读取
16lz
2021-01-25
软件需求:用户输入姓名和年龄点击保存按钮将信息保存到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;@Overrideprotected 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 params=prefercesService.getPreferences();name.setText(params.get("name"));age.setText(params.get("age"));}@Overridepublic 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 getPreferences(){ SharedPreferences pre=context.getSharedPreferences("itcast", Context.MODE_PRIVATE); //如果得到的name没有值则设置为空 pre.getString("name", ""); Map params=new HashMap(); params.put("name", pre.getString("name", "")); params.put("age", String.valueOf(pre.getInt("age", 0))); return params; }}
布局文件注意button应该这样设置
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- Android官方技术文档翻译——Eclilpse项目迁移
- Android日志获取工具
- 我的android 第28天 - Activity(一)
- Android2.2平台上支持多camera(二)
- ubuntu上实现Android(安卓)JNI示例