博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 66 sharedperference的使用
阅读量:5928 次
发布时间:2019-06-19

本文共 4565 字,大约阅读时间需要 15 分钟。

package com.itheima.qqlogin;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import android.app.Activity;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.os.Bundle;import android.text.TextUtils;import android.view.View;import android.widget.CheckBox;import android.widget.EditText;import android.widget.Toast;/*##Context 是什么,Activity是Context的子类,this就是Context,getApplicationContext()返回值就是Context,> 上下文 : 程序运行的一个依赖的环境. 必须有这个环境,才可以方便的执行代码,没有就不能方便的执行代码了。> 应用程序运行的全局的环境.帮助类.##共享参数 SharedPerference1. 声明sp        private SharedPreferences sp;2. 初始化sp        sp = this.getSharedPreferences("config", MODE_PRIVATE);3. 使用sp        Editor editor = sp.edit();        editor.putString("qq", qq);        editor.putString("password", password);        //一定不要忘记 提交数据        editor.commit();//提交数据. 类似关闭流,事务4. 读取sp        sp.getString("qq", "");*/public class MainActivity extends Activity {    private EditText et_qqnumber;    private EditText et_password;    private CheckBox cb_remember;        /**     * 1. 声明一个共享参数(存储数据方便的api,专门往文件存数据)     */    private SharedPreferences sp;            @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //2. 通过上下文得到一个共享参数的实例对象        sp = this.getSharedPreferences("config", MODE_PRIVATE);//config是文件名,在内存储的data/data/包名/shared_prefern/config.xml,与设置相关的都在SharedPreference里面(铃声,震动),        //类似 File f = new File("config");        //寻找这些控件        et_qqnumber = (EditText) findViewById(R.id.et_qqnumber);        et_password = (EditText) findViewById(R.id.et_password);        cb_remember = (CheckBox) findViewById(R.id.cb_remember);        restoreInfo();    }    /**     * 登陆按钮的点击事件     * @param view     */    public void login(View view){        String qq = et_qqnumber.getText().toString().trim();        String password = et_password.getText().toString().trim();        if(TextUtils.isEmpty(qq)||TextUtils.isEmpty(password)){            Toast.makeText(this, "用户名和密码不能为空", 0).show();            return;        }else{            //判断是否需要记录用户名和密码            if(cb_remember.isChecked()){
//被选中状态,需要记录用户名和密码 //TODO:记录密码 Editor editor = sp.edit();//返回值是一个编辑器,专门用来编辑文件,Editor类似于输出流。 editor.putString("qq", qq); editor.putString("password", password); editor.commit();//提交数据. 类似关闭流,事务 } //登陆操作的. 模拟登陆,数据应该提交给服务器 由服务器比较是否正确 if("10000".equals(qq)&&"123456".equals(password)){ Toast.makeText(this, "登陆成功", 0).show(); }else{ Toast.makeText(this, "登陆失败", 0).show(); } } } /** * 根据原来保存的文件信息,把qq号码和密码信息回显到界面 */ public void restoreInfo(){ //TODO:读取密码 String qq = sp.getString("qq", "");//""是默认值,如果不存在就返回"", String password = sp.getString("password", ""); et_qqnumber.setText(qq); et_password.setText(password); }}

config.xml存储的密码:

保存设置信息:

package com.itheiam.setting;import android.app.Activity;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.os.Bundle;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.CompoundButton.OnCheckedChangeListener;public class MainActivity extends Activity {    private CheckBox cb;    private SharedPreferences sp;//保存设置的信息,例如是否开启飞行模式status为true表示开始了false表示没有开启。    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        cb = (CheckBox) findViewById(R.id.cb);        sp = this.getSharedPreferences("config", MODE_PRIVATE);        //回显数据        boolean status = sp.getBoolean("status", false);//false是默认值,默认不勾选        cb.setChecked(status);        //监听变化        cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {            // 当勾选状态变化的时候调用的方法            @Override            public void onCheckedChanged(CompoundButton buttonView,                    boolean isChecked) {                Editor editor = sp.edit();                editor.putBoolean("status", isChecked);                // 一定不要忘记 提交数据                editor.commit();// 提交数据. 类似关闭流,事务            }        });    }}

 

本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/4919028.html,如需转载请自行联系原作者

你可能感兴趣的文章
QueryRunner类的八种结果处理集
查看>>
面向对象,类,构造函数,方法重载
查看>>
Shell之Sed常用用法
查看>>
全新的版本与二次发布的版本的测试顺序区别
查看>>
多字节与宽字节
查看>>
DNS
查看>>
微信图片防盗链解决办法
查看>>
前端-跨域
查看>>
网络攻防第四周作业
查看>>
java_jdk环境变量的设置
查看>>
异常处理的捕捉:try{}catch(异常类 变量)finally{最终执行}
查看>>
ActivityManager.MemoryInfo 小问题
查看>>
也谈LBP
查看>>
伪类选择器
查看>>
Activity的生命周期
查看>>
swift NSURLSession 使用方法
查看>>
每天一个小算法(Heapsort)
查看>>
R语言--ggplot2包
查看>>
Struts2执行原理
查看>>
Discuz模板的制作方法
查看>>