android小功能实现之简单数据持久化保存(SharedPreferences)
投稿于 被查看 18758 次 评论:74
android小功能实现之简单数据持久化保存(SharedPreferences)
为了保存一些简单的配置,类似iOS的NSUserDefault和cocos2dx的CCUserDefault,Android提供了SharedPreferences。
一 布局
先看效果图:
打开main.xml修改内容如下:
二 定义字符串
打开strings.xml添加内容如下:
姓名 年龄 保存参数 保存成功 保存失败
三 功能实现
修改MainActivity.java代码如下:
private EditText nameText; private EditText ageText; @Override protected 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(); } }
四 运行结果
第一次运行结果如图:
输入内容,点击保存参数按钮,退出程序,再次打开,如图:
用户评论