Sharedperferences数据储存

来源:互联网 发布:asp.net 4.5 高级编程 编辑:程序博客网 时间:2024/04/27 23:32

有四种数据存储:

1、SQLite
2、Sharedperferences
3、Content Provider
4、File


Sharedperferences:
-是一种轻型数据存储方式
-基本是基于xml文件存储key--value键值对数据
-通常存储简单的配置信息(基本数据类)

相关:String name = etUserName.getText().toString().trim();
.trim():去掉收尾的空格;
一、Sharedperferences对象本身只能获取数据而不支持存储和修改
存储和修该是editor(编辑器)对象。

二、实现Sharedperferences存储的步骤如下:
(1)获取SharedPreferences对象
   //得到一个默认包下文件的
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
   //得到一个指定的文件名和文件权限(有6种权限)
SharedPreferences pref =getSharedPreferences("myPref", MODE_PRIVATE);

 (2)获取SharedPreferences.Editor对象(因为SharedPreferencesd对象不能直接进行存储,存储实现通过Editor对象实现)
(3)通过Editor接口的putXxxx方法保存
(4)通过Editor.commit提交

现在来看java代码:

 <pre class="java" name="code">import android.app.Activity;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.os.Bundle;import android.view.View;import android.widget.CheckBox;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {EditText etUserName,etUserPass;CheckBox chk;SharedPreferences pref;Editor edtior;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//得到一个默认的包下的 //SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);////得到一个指定的文件名和文件权限SharedPreferences pref =getSharedPreferences("myPref", MODE_PRIVATE);//Editor editor = pref.edit();//得到编辑器对象//editor.putInt("age", 30);//editor.putLong("time", System.currentTimeMillis());//editor.putBoolean("default", true);//editor.commit();//一定要提交不提交都是无效的//editor.remove("default");//移除//editor.commit();//System.out.println(pref.getString("name", ""));////System.out.println(pref.getInt("age", 0));etUserName = (EditText) findViewById(R.id.etuserName);etUserPass = (EditText) findViewById(R.id.etuserpass);chk = (CheckBox) findViewById(R.id.chkSaveName);pref =getSharedPreferences("UserInfo", MODE_PRIVATE);edtior = pref.edit();String name = pref.getString("userName", "");//读取pref对象对应文件下的userName对应的数据if (name==null) {chk.setChecked(false);}else {chk.setChecked(true);etUserName.setText(name);}}public void doClick(View v){switch (v.getId()) {case R.id.btnLogin:String name = etUserName.getText().toString().trim();String pass = etUserPass.getText().toString().trim();if ("admin".equals(name)&&"123456".equals(pass)) {if (chk.isChecked()) {edtior.putString("userName", name);edtior.commit();}else {edtior.remove("userName");edtior.commit();}Toast.makeText(MainActivity.this, "登陆成功", Toast.LENGTH_LONG).show();}else {Toast.makeText(MainActivity.this, "禁止登陆", Toast.LENGTH_LONG).show();}break;default:break;}}}


0 0
原创粉丝点击