Sharedperferences数据储存

有四种数据存储:

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;
		}
	}
	

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值