zoukankan      html  css  js  c++  java
  • 第四十四篇--做一个简单的QQ登录界面

    功能:输入用户名和密码,正确,显示登录成功,为空的话,提示用户名和密码不能为空,还有记住密码功能。

    MainActivity.java

    package com.aimee.android.play.qqlogin;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    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.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.InputStreamReader;
    
    import static android.text.TextUtils.isEmpty;
    
    public class MainActivity extends AppCompatActivity {
    
        private EditText mEtnumber;
        private EditText mEtPasswd;
        private CheckBox mCbRemember;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            mEtnumber = findViewById(R.id.et_qq);
            mEtPasswd = findViewById(R.id.et_password);
            mCbRemember = findViewById(R.id.cb_remember);
    
            //1.找到界面上的控件
            //2.点击按钮,将用户输入的用户名和密码保存到文件当中
            //3.如果说下次启动app,那么就从文件当中读取出来显示到编辑框
    
            restoreInfo();
        }
    
        /**
         * 根据原来保存的文件信息,把QQ号码和密码信息显示到界面
         * */
        private void restoreInfo() {
            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 pwd = info.split("##")[1];
                    mEtnumber.setText(qq);
                    mEtPasswd.setText(pwd);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    
        /**
         * 登录按钮的点击事件
         *
         * @param view
         * */
        public void login(View view) {
            String qq = mEtnumber.getText().toString().trim();
            String password = mEtPasswd.getText().toString().trim();
    
            if (isEmpty(qq) || isEmpty(password)){
                Toast.makeText(this,"用户名和密码不能为空",Toast.LENGTH_SHORT).show();
                return;
            }else {
                //判断是否需要记录用户名和密码
                if (mCbRemember.isChecked()){
    //                Toast.makeText(this,this.getExternalFilesDir(null).getAbsolutePath(),Toast.LENGTH_SHORT).show();
                    //被选中的状态,需要记录用户名和密码
                    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) && "123456".equals(password)){
                    Toast.makeText(this,"登录成功",Toast.LENGTH_SHORT).show();
                }
                else {
                    Toast.makeText(this,"登录失败",Toast.LENGTH_SHORT).show();
                }
            }
        }
    }
    View Code

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <ImageView
            android:id="@+id/imageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="108dp"
            android:layout_marginEnd="8dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@mipmap/qq" />
    
        <EditText
            android:id="@+id/et_qq"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="32dp"
            android:layout_marginEnd="8dp"
            android:ems="10"
            android:hint="请输入QQ号码"
            android:gravity="center"
            android:inputType="textPersonName"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/imageView" />
    
        <EditText
            android:id="@+id/et_password"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="30dp"
            android:layout_marginEnd="8dp"
            android:ems="10"
            android:hint="请输入密码"
            android:gravity="center"
            android:inputType="textPassword"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/et_qq" />
    
        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="88dp"
            android:layout_marginEnd="8dp"
            android:onClick="login"
            android:text="登录"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/et_password" />
    
        <CheckBox
            android:id="@+id/cb_remember"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="16dp"
            android:layout_marginEnd="8dp"
            android:text="记住密码"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/et_password" />
    </android.support.constraint.ConstraintLayout>
    View Code

    提醒getFilesDir()路径下面的文件可能没有执行权限,可以试试采用adb shell的方式,输入su请求root权限,手机会弹出是否允许,记住不要看错了,默认可是拒绝,本人就是手快点了个永久拒绝。

  • 相关阅读:
    springboot1.x+dubbo案例
    dubbo相关的博文
    druid监控配置
    Tomcat启动报错整理
    Hibernate @OneToMany等注解设置查询过滤条件等
    异常处理
    复杂的xml转化为java实体
    简单Java类与XML之间的转换
    mysql errno 150
    JdbcTemplate进行查询
  • 原文地址:https://www.cnblogs.com/smart-zihan/p/10681107.html
Copyright © 2011-2022 走看看