1. 程式人生 > >Android核心技術-day02-02-類qq登陸

Android核心技術-day02-02-類qq登陸

package com.gaozewen.qqlogin;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;

public class MainActivity extends AppCompatActivity {

    private EditText mEt_qqNumber;
    private EditText mEt_password;
    private CheckBox mCb_remember;

    // 新建 res/drawable-hdpi
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mEt_qqNumber = findViewById(R.id.et_qqnumber);
        mEt_password = findViewById(R.id.et_password);
        mCb_remember = findViewById(R.id.cb_remember);
        readStore();
    }

    /**
     * 根據原來儲存的檔案資訊,把qq號碼和密碼資訊顯示到介面
     */
    private void readStore() {
        // getFilesDir ==> data/data/com.gaozewen.com/files/info.txt
        File file = new File(this.getFilesDir(), "info.txt");
        if (file.exists() && file.length() > 0) { // 檔案存在且有內容
            try {
                FileInputStream fis = new FileInputStream(file);
                BufferedReader br = new BufferedReader(new InputStreamReader(fis));

                String info = br.readLine();
                String qq =  info.split("##")[0];
                String password =  info.split("##")[1];
                mEt_qqNumber.setText(qq);
                mEt_password.setText(password);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    // 登陸按鈕的點選事件
    public void login(View view) {
        String qq = mEt_qqNumber.getText().toString().trim();
        String password = mEt_password.getText().toString().trim();

        if (TextUtils.isEmpty(qq) || TextUtils.isEmpty(password)){
            Toast.makeText(this, "使用者名稱和密碼不能為空", Toast.LENGTH_SHORT).show();
            return;
        }else {
            // 判斷是否要記錄使用者名稱和密碼
            if (mCb_remember.isChecked()){
                // 被選中狀態需要記錄使用者名稱和密碼
                File file = new File(this.getFilesDir(), "info.txt");
                try {
                    FileOutputStream fos = new FileOutputStream(file);
                    String info = qq + "##" + password;
                    fos.write(info.getBytes());
                    fos.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            // 登陸操作,模擬登陸,資料應該提交給伺服器比較是否正確
            if ("10000".equals(qq) && "1".equals(password)){
                Toast.makeText(this, "登陸成功", Toast.LENGTH_SHORT).show();
            }else{
                Toast.makeText(this, "登陸失敗", Toast.LENGTH_SHORT).show();
            }
        }


    }
}