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