有四种数据存储:
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;
@Override
protected 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;
}
}
}