工程目录:

做软件开发应该都知道,很多软件会有配置文件,里面存放这程序运行当中的各个属性值,由于其配置信息并不多,如果采用数据库来存放并不划算,因为数据库连接跟操作等耗时大大影响了程序的效率,因此我们使用键值这种一一对应的关系来存放这些配置信息。SharedPreferences正是Android中用于实现这中存储方式的技术。

下面直接贴实现代码: package peixun.savaparameter.service;
PreferenceService类:

<span style="font-size:18px;">package peixun.savaparameter.service;import java.util.HashMap;import java.util.Map;import android.content.Context;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.preference.Preference;public class PreferenceService {private Contextcontext;public PreferenceService(Context context) {super();this.context = context;}public void save(String name, Integer age) {// TODO Auto-generated method stubSharedPreferences preference=context.getSharedPreferences(name, Context.MODE_PRIVATE);Editor editor=preference.edit();editor.putString("name", name);editor.putInt("age", age);editor.commit();}public Map<String,String> getParameter(String name){Map<String, String> params=new HashMap<String, String>();SharedPreferences preference=context.getSharedPreferences(name, Context.MODE_PRIVATE);params.put("name", preference.getString("name", ""));params.put("age", String.valueOf(preference.getInt("age", 0)));return params;}}</span><strong></strong>
注解: //打开Preferences,名称为name,如果存在则打开它,否则创建新的Preferences,写入方式为Context.MODE_PRIVATE。
SharedPreferences preference=context.getSharedPreferences(name, Context.MODE_PRIVATE);
Editor editor=preference.edit();//让Editor处于编辑状态

package peixun.savaparameter;

MainActivity类:

package peixun.savaparameter;import java.util.Map;import peixun.savaparameter.service.PreferenceService;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {private EditText nameText;private EditText ageTest;private PreferenceService service;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);nameText=(EditText) this.findViewById(R.id.name);ageTest=(EditText) this.findViewById(R.id.age);service=new PreferenceService(this);String name=nameText.getText().toString();Map<String, String> paramers=service.getParameter(name);nameText.setText(paramers.get("name"));ageTest.setText(paramers.get("age"));}public void save(View v){String name=nameText.getText().toString();String age=ageTest.getText().toString();PreferenceService service=new PreferenceService(getApplicationContext());service.save(name,Integer.valueOf(age));Toast.makeText(getApplicationContext(), R.string.savaSuccess, 1).show();}@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;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}}

layout目录下的界面activity_main.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"    ><TextView    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="@string/name"    /><EditText     android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:id="@+id/name"/><TextView     android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="@string/age"/><EditText    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:id="@+id/age"/><Button     android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="@string/savaButton"    android:onClick="save"    android:id="@+id/saveButton"/>    </LinearLayout>

values目录下的String.xml文件

<?xml version="1.0" encoding="utf-8"?><resources>    <string name="app_name">保存参数</string>    <string name="action_settings">Settings</string>    <string name="name">姓名</string>    <string name="age">年龄</string>    <string name="savaButton">保存参数</string>    <string name="savaSuccess">保存成功</string>    <string name="savaFailed">保存失败</string>    </resources>

运行结果截图:



在File Explorer下的data目录下的data文件下有一个shared_prefs文件,保存的文件路劲就这这里面,文件名为我们输入的姓名。

SharedPreferences的使用非常简单,能够轻松的存放数据和读取数据。SharedPreferences只能保存简单类型的数据,例如,String、int等。一般会将复杂类型的数据转换成Base64编码,然后将转换后的数据以字符串的形式保存在 XML文件中,再用SharedPreferences保存。



更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
  4. Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
  5. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  6. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  7. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  8. Android实训案例(五)——四大组件之一ContentProvider的使用,通讯录
  9. Android(安卓)RIL 调试分析全记录

随机推荐

  1. 进入android项目组的第一天
  2. Handler 机制(一)
  3. Flutter实战(八)---巧用SizedBox实现Margin
  4. Android高手进阶教程(二)之----Android(
  5. Windows配置Android(安卓)SDK环境
  6. Android系统结构
  7. blcr加速android启动速度遇到的问题及解
  8. Android应用程序键盘(Keyboard)消息处理机
  9. Android(安卓)实现系统深度休眠笔记
  10. Android(安卓)Launcher 分析