• android 登陆案例_最终版本 sharedpreference


    xml  与之前的登陆案例相同

    java代码:

     1 package com.itheima.login;
     2 
     3 import java.util.Map;
     4 
     5 import com.itheima.login.util.UserInfoUtil;
     6 import com.itheima.login_shared.R;
     7 
     8 import android.app.Activity;
     9 import android.content.Context;
    10 import android.os.Bundle;
    11 import android.text.TextUtils;
    12 import android.view.View;
    13 import android.view.View.OnClickListener;
    14 import android.widget.Button;
    15 import android.widget.CheckBox;
    16 import android.widget.EditText;
    17 import android.widget.Toast;
    18 
    19 public class MainActivity extends Activity implements OnClickListener{
    20 
    21     private EditText et_username;
    22     private EditText et_password;
    23     private CheckBox cb_rem;
    24     private Button bt_login;
    25     private Context mContext;
    26 
    27     @Override
    28     protected void onCreate(Bundle savedInstanceState) {
    29         super.onCreate(savedInstanceState);
    30         setContentView(R.layout.activity_main);
    31         mContext = this;
    32         et_username = (EditText) findViewById(R.id.et_username);
    33         et_password = (EditText) findViewById(R.id.et_password);
    34         cb_rem = (CheckBox) findViewById(R.id.cb_rem);
    35         bt_login = (Button) findViewById(R.id.bt_login);
    36         //b.设置按钮的点击事件
    37         bt_login.setOnClickListener(this);
    38 
    39         
    40         //f.回显用户名密码 ??
    41         Map<String, String> map = UserInfoUtil.getUserInfo_android(mContext);//获取用户名密码
    42         if(map != null){
    43             String username = map.get("username");
    44             String password = map.get("password");
    45             et_username.setText(username);//设置用户名
    46             et_password.setText(password);
    47             cb_rem.setChecked(true);//设置复选框选中状态
    48         }
    49 
    50     }
    51 
    52     private void login(){
    53 
    54         //c.在onclick方法中,获取用户输入的用户名密码和是否记住密码
    55 
    56             String username = et_username.getText().toString().trim();
    57             String password = et_password.getText().toString().trim();
    58             boolean isrem = cb_rem.isChecked();
    59         //d.判断用户名密码是否为空,不为空请求服务器(省略,默认请求成功)
    60             if(TextUtils.isEmpty(username) || TextUtils.isEmpty(password)){
    61                 Toast.makeText(mContext, "用户名密码不能为空", Toast.LENGTH_SHORT).show();
    62                 return ;
    63             }
    64             
    65         //请求服务器,后面讲。。。。。。。。。。
    66                 
    67         //e.判断是否记住密码,如果记住,将用户名密码保存本地。???? 
    68             if(isrem){
    69                 boolean result = UserInfoUtil.saveUserInfo_android(mContext,username,password);
    70                 if(result){
    71                     Toast.makeText(mContext, "用户名密码保存成功", Toast.LENGTH_SHORT).show();
    72                 }else{
    73                     Toast.makeText(mContext, "用户名密码保存失败", Toast.LENGTH_SHORT).show();    
    74                 }
    75                 
    76             }else{
    77                 Toast.makeText(mContext, "无需保存", Toast.LENGTH_SHORT).show();
    78             }
    79 
    80 
    81 
    82     }
    83 
    84     @Override
    85     public void onClick(View v) {
    86         switch (v.getId()) {
    87         case R.id.bt_login:
    88             login();
    89             break;
    90 
    91         default:
    92             break;
    93         }
    94     }
    95 
    96 
    97 }

    包中代码:

     1 package com.itheima.login.util;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.File;
     5 import java.io.FileInputStream;
     6 import java.io.FileOutputStream;
     7 import java.io.InputStreamReader;
     8 import java.util.HashMap;
     9 import java.util.Map;
    10 
    11 import android.content.Context;
    12 import android.content.SharedPreferences;
    13 import android.content.SharedPreferences.Editor;
    14 import android.preference.PreferenceManager;
    15 
    16 public class UserInfoUtil {
    17     
    18     //保存用户名密码
    19     public static boolean saveUserInfo_android(Context context,String username, String password) {
    20 
    21         try{
    22             
    23             
    24             //1.通过Context对象创建一个SharedPreference对象
    25             //name:sharedpreference文件的名称    mode:文件的操作模式            
    26             SharedPreferences sharedPreferences = context.getSharedPreferences("userinfo.txt", Context.MODE_PRIVATE);
    27             //2.通过sharedPreferences对象获取一个Editor对象
    28             Editor editor = sharedPreferences.edit();
    29             //3.往Editor中添加数据
    30             editor.putString("username", username);
    31             editor.putString("password", password);
    32             //4.提交Editor对象
    33             editor.commit();
    34 
    35             return true;
    36         }catch (Exception e) {
    37             e.printStackTrace();
    38         }
    39 
    40         return false;
    41     }
    42     
    43     
    44     //获取用户名密码
    45     public static Map<String ,String> getUserInfo_android(Context context){
    46         
    47         try{
    48 
    49             //1.通过Context对象创建一个SharedPreference对象
    50             SharedPreferences sharedPreferences = context.getSharedPreferences("userinfo.txt", Context.MODE_PRIVATE);            
    51             //2.通过sharedPreference获取存放的数据
    52             //key:存放数据时的key   defValue: 默认值,根据业务需求来写
    53             String username = sharedPreferences.getString("username", "");
    54             String password = sharedPreferences.getString("password", "");
    55             
    56             
    57             HashMap<String, String> hashMap = new HashMap<String ,String>();
    58             hashMap.put("username",username);
    59             hashMap.put("password", password);
    60             return hashMap;
    61             
    62         }catch (Exception e) {
    63             e.printStackTrace();
    64         }
    65         return null;
    66         
    67     }
    68     
    69     
    70     
    71 
    72 }

    老师笔记

    SharedPreferences第二种存储方式(重点)
         主要用于

        (1)往SharedPreferences保存数据
            
         public void save(View v){
            
            String data = et.getText().toString().trim();
            if(TextUtils.isEmpty(data)){
                Toast.makeText(this, "请输入数据", 0).show();
                return;
            }else{
                
                //得到一个SharedPreferences
                SharedPreferences sp = this.getSharedPreferences("info", Context.MODE_PRIVATE);
                //SharedPreferences提供了一个编辑器,帮助我们保存数据
                Editor editor = sp.edit();
                
                editor.putString("data", data);
                
                //把数据保存到SharedPreferences中
                editor.commit();

            }
        }

        (2)从SharedPreferences读取数据
        public String readData(){
            
        
            String data;
            try {
                //得到一个SharedPreferences
                SharedPreferences sp = this.getSharedPreferences("info", Context.MODE_PRIVATE);
                //根据参数名称得到数据
                data = sp.getString("data", null);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                data = "";
            }
            
            return data;
            
        }
        

  • 相关阅读:
    foxmail邮箱在代理环境下不能使用解决方法。
    Win7下IE8无法打开https类型的网站解决方法笔记
    重新注册IE组件
    Web开发者的六个代码调试平台
    仿Material UI框架的动画特效
    JS几种数组遍历方式以及性能分析对比
    js 函数提升和变量提升
    彻底掌握this,call,apply
    深入理解requestAnimationFrame
    基于iscroll.js实现下拉刷新和上拉加载特效
  • 原文地址:https://www.cnblogs.com/liangqiyuan/p/5686549.html
Copyright © 2020-2023  润新知