android小功能实现之简单数据持久化保存(SharedPreferences)

为了保存一些简单的配置,,类似iOS的NSUserDefault和cocos2dx的CCUserDefault,Android提供了SharedPreferences。一 布局先看效果图:

打开main.xml修改内容如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns: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/input_name" /><EditText android:layout_width="fill_parent"android:layout_height="wrap_content"android:id="@+id/input_name" /><TextView android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/input_age" /><EditText android:layout_width="fill_parent"android:layout_height="wrap_content"android:numeric="integer"android:id="@+id/input_age" /><Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/button_save"android:onClick="save"android:id="@+id/button_save"/></LinearLayout> 二 定义字符串打开strings.xml添加内容如下: <string name="input_name">姓名</string><string name="input_age">年龄</string><string name="button_save">保存参数</string><string name="success">保存成功</string><string name="fail">保存失败</string>三 功能实现修改MainActivity.java代码如下: private EditText nameText;private EditText ageText;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);nameText = (EditText)this.findViewById(R.id.input_name);ageText = (EditText)this.findViewById(R.id.input_age);// 读取保存的值//SharedPreferences preferences = this.getPreferences(Context.MODE_PRIVATE);// 默认使用类名作为文件名称//SharedPreferences preferences = this.getSharedPreferences("preference", Context.MODE_PRIVATE);SharedPreferences preferences = getApplicationContext().getSharedPreferences("preference", Context.MODE_PRIVATE);String name = preferences.getString("name", "空");String age = String.valueOf(preferences.getInt("age", 0));nameText.setText(name);ageText.setText(age);}public void save(View v){String name = nameText.getText().toString();Integer age = Integer.valueOf( ageText.getText().toString() );try{// 第一个参数为文件名称,不能指定后缀名,第二个参数为文件操作模式SharedPreferences preferences = getApplicationContext().getSharedPreferences("preference", Context.MODE_PRIVATE);SharedPreferences.Editor editor = preferences.edit();editor.putString("name", name);editor.putInt("age", age);editor.commit();Toast.makeText(getApplicationContext(),R.string.success, Toast.LENGTH_LONG).show();}catch (Exception e){Toast.makeText(getApplicationContext(),R.string.fail, Toast.LENGTH_LONG).show();e.printStackTrace();}}四 运行结果

第一次运行结果如图:

输入内容,点击保存参数按钮,退出程序,再次打开,如图:

旅行还在继续,这个过程是艰难而又孤单的。

android小功能实现之简单数据持久化保存(SharedPreferences)

相关文章:

你感兴趣的文章:

标签云: