android移动应用开发学习笔记(五)——模拟qq登陆界面

今天学习书上的qq登陆界面的编写

首先是界面书写,代码比较简单,这里就不做过多解释了:



    

    

        

            

            
        

        

        

            

            
        
    

    


接着创建一个工具类Utils类来使用SharePreference存储数据,用于实现qq号码和密码的存储与获取功能,代码也都比较简单:

package cn.itcast.saveqq.utils;

import java.util.HashMap;
import java.util.Map;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

public class Utils {
    // 保存QQ号码和登录密码,到data.xml文件中
    public static boolean saveUserInfo(Context context, String number,
                                       String password) {
        SharedPreferences sp = context.getSharedPreferences("data",
                Context.MODE_PRIVATE);
        Editor edit = sp.edit();
        edit.putString("userName", number);
        edit.putString("pwd", password);
        edit.commit();
        return true;
    }

    // 从data.xml文件中获取存储的QQ号码和密码
    public static Map getUserInfo(Context context) {
        SharedPreferences sp = context.getSharedPreferences("data",
                Context.MODE_PRIVATE);
        String number = sp.getString("userName", null);
        String password = sp.getString("pwd", null);
        Map userMap = new HashMap();
        userMap.put("number", number);
        userMap.put("password", password);
        return userMap;
    }
}

最后就是界面交互代码MainActivity,输入qq号和密码后可以记住账号和密码,单击登陆按钮调用Utils.saveUserInfo()方法保存qq号和密码:
package com.example.qqlogin;
import java.util.Map;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

import com.example.qqlogin.R;

import cn.itcast.saveqq.utils.Utils;

public class MainActivity extends Activity implements OnClickListener {
    private EditText etNumber;
    private EditText etPassword;
    //	private CheckBox cbRemember;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        // 取出号码
        Map userInfo = Utils.getUserInfo(this);
        if(userInfo != null) {
            // 显示在界面上
            etNumber.setText(userInfo.get("number"));
            etPassword.setText(userInfo.get("password"));
        }
    }

    private void initView() {
        etNumber = (EditText) findViewById(R.id.et_number);
        etPassword = (EditText) findViewById(R.id.et_password);
//		cbRemember = (CheckBox) findViewById(R.id.cb_remember);
        findViewById(R.id.btn_login).setOnClickListener(this);
    }

    public void onClick(View v) {
        // 当点击登录时,获取QQ号码 和密码
        String number = etNumber.getText().toString().trim();
        String password = etPassword.getText().toString();
        // 校验号码和密码是否正确
        if(TextUtils.isEmpty(number)) {
            Toast.makeText(this, "请输入QQ号码", Toast.LENGTH_SHORT).show();
            return;
        }
        if(TextUtils.isEmpty(password)) {
            Toast.makeText(this, "请输入密码", Toast.LENGTH_SHORT).show();
            return;
        }
        // 登录成功
        Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();
        // 如果正确, 判断是否勾选了记住密码
//		if(cbRemember.isChecked()) {
        Log.i("MainActivity", "记住密码: " + number + ", " + password);
        // 保存用户信息
        boolean isSaveSuccess = Utils.saveUserInfo(this, number, password);
        if(isSaveSuccess) {
            Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(this, "保存失败", Toast.LENGTH_SHORT).show();
        }
//		}
    }
}

这样就可以运行了,效果图:

android移动应用开发学习笔记(五)——模拟qq登陆界面_第1张图片

android移动应用开发学习笔记(五)——模拟qq登陆界面_第2张图片


参考书籍:《Android移动应用基础教程》


你可能感兴趣的:(移动开发)