zoukankan      html  css  js  c++  java
  • 团队博客(二)

    5.4

    完成登录注册界面的设计以及相关java文件的代码,但仍存在一些问题

     xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="#4169E1">
    
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:layout_gravity="center"
            android:paddingLeft="16dp"
            android:paddingRight="16dp"
            android:textColor="#000000"
            android:textSize="55sp"
            android:textStyle="bold"
            android:text="福星会议" />
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="10dp"
            android:src="@drawable/huiyi"/>
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="50dp"
                android:text="用户:"
                android:drawableLeft="@drawable/yonghu"
                android:textColor="#000000"
                android:textSize="28dp" />
    
            <EditText
                android:layout_width="250dp"
                android:layout_height="wrap_content"
                android:id="@+id/username"
                android:layout_marginTop="50dp"
                android:layout_marginLeft="5dp"
                android:background="@drawable/bg_username"
                android:maxLines="1"
                android:singleLine="true"
                android:textSize="28dp"
                android:hint="请输入用户名"
                android:paddingLeft="10dp"
                />
    
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginTop="20dp">
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="密码:"
                android:drawableLeft="@drawable/mima"
                android:textColor="#000000"
                android:textSize="28dp" />
    
            <EditText
                android:layout_width="250dp"
                android:layout_height="wrap_content"
                android:id="@+id/password"
                android:background="@drawable/bg_username"
                android:layout_marginLeft="5dp"
                android:maxLines="1"
                android:textSize="28dp"
                android:hint="请输入密码"
                android:singleLine="true"
                android:paddingLeft="10dp"
                android:inputType="textWebPassword"
                />//隐藏密码
    
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginTop="20dp">
            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/checkbox_zhanghao"
                android:orientation="vertical"
                android:layout_marginLeft="5dp"
                android:checked="false"
                android:textSize="20dp"
                android:text="自动登录"
                android:textColor="#000000"
                />
    
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginTop="20dp">
            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/checkbox_text"
                android:orientation="vertical"
                android:layout_marginLeft="5dp"
                android:checked="false"
                android:textSize="20dp"
                android:text="记住密码"
                android:textColor="#000000"
                />
    
        </LinearLayout>
    
        <Button
            android:id="@+id/btn_login"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="5dp"
            android:background="@drawable/bg_btn_1"
            android:paddingLeft="40dp"
            android:paddingRight="40dp"
            android:text="登录"
            android:textSize="30dp" />
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:orientation="horizontal"
            android:paddingTop="40dp">
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="忘记密码?"
                android:layout_marginLeft="25dp"
                android:textSize="30sp"/>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/btn_register"
                android:layout_marginLeft="70dp"
                android:paddingLeft="40dp"
                android:paddingRight="40dp"
                android:textSize="30sp"
                android:text="注册" />
    
    
    
        </LinearLayout>
    
    </LinearLayout>

    java

    package com.example.fuxing;
    
    import android.annotation.SuppressLint;
    import android.content.Context;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.CheckBox;
    import android.widget.CompoundButton;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import com.example.fuxing.service.UserService;
    
    import java.util.Map;
    
    public class LoginActivity extends AppCompatActivity {
    
    
        private CheckBox rem_pw;
        private CheckBox auto_login;
        private EditText username;
        private EditText password;
        private Button login;
        private TextView register;
        private SharedPreferences sp;
    
        @SuppressLint("WrongConstant")
        @Override
    
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate( savedInstanceState );
            setContentView( R.layout.activity_login );//即activity_login.xml
            sp = this.getSharedPreferences( "userInfo", Context.MODE_PRIVATE );
                username = findViewById( R.id.username );
                password = findViewById( R.id.password );
                login = findViewById( R.id.btn_login );
                register = findViewById( R.id.btn_register );
                rem_pw = findViewById( R.id.checkbox_text );
                auto_login = findViewById( R.id.checkbox_zhanghao );
            /*Map<String, String> map=User.Get(this);
            if(map!=null){
                username.setText(map.get("user"));
                password.setText(map.get("key"));
            }*/
    
            //判断记住密码多选框的状态
            if(sp.getBoolean("ISCHECK", true))
            {
                //设置默认是记录密码状态
                rem_pw.setChecked(true);
                username.setText(sp.getString("USER_NAME", ""));
                password.setText(sp.getString("PASSWORD", ""));
                //判断自动登陆多选框状态
                if(sp.getBoolean("AUTO_ISCHECK", true))
                {
                    //设置默认是自动登录状态
                    auto_login.setChecked(true);
                    //跳转界面
                    Intent intent = new Intent(LoginActivity.this,MainActivity.class);
                    LoginActivity.this.startActivity(intent);
    
                }
            }
    
            //登录事件
                login.setOnClickListener( new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        String name = username.getText().toString();
                        System.out.println( name );
                        String pass = password.getText().toString();
                        System.out.println( pass );
    
                        Log.i( "TAG", name + "_" + pass );
                        UserService uService = new UserService( LoginActivity.this );
                        boolean flag = uService.login( name, pass );
    
                        if (flag) {
                            Log.i( "TAG", "登录成功" );
                            Toast.makeText( LoginActivity.this, "登录成功", Toast.LENGTH_LONG ).show();
                            //登录成功和记住密码框为选中状态才保存用户信息
                            if(rem_pw.isChecked())
                            {
                                //记住用户名、密码、
                                SharedPreferences.Editor editor = sp.edit();
                                editor.putString("USER_NAME", name);
                                editor.putString("PASSWORD", pass);
                                editor.commit();
                            }
                            //跳转界面
                            Intent intent = new Intent( LoginActivity.this, MainActivity.class );
                            startActivity( intent );
                        }
                        else {
                            Log.i( "TAG", "登录失败" );
                            Toast.makeText( LoginActivity.this, "登录失败", Toast.LENGTH_LONG ).show();
                        }
                    }
                } );
    
            rem_pw.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
                    if (rem_pw.isChecked()) {
    
                        System.out.println("记住密码已选中");
                        sp.edit().putBoolean("ISCHECK", true).commit();
    
                    }else {
    
                        System.out.println("记住密码没有选中");
                        sp.edit().putBoolean("ISCHECK", false).commit();
    
                    }
    
                }
            });
    
            //监听自动登录多选框事件
            auto_login.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
                    if (auto_login.isChecked()) {
                        System.out.println("自动登录已选中");
                        sp.edit().putBoolean("AUTO_ISCHECK", true).commit();
    
                    } else {
                        System.out.println("自动登录没有选中");
                        sp.edit().putBoolean("AUTO_ISCHECK", false).commit();
                    }
                }
            });
    
            //注册事件
            register.setOnClickListener( new View.OnClickListener() {
                    public void onClick(View v) {
                        Intent intent = new Intent( LoginActivity.this, RegisterActivity.class );
                        startActivity( intent );
                    }
                } );
            }
        }
  • 相关阅读:
    Velocity(7)——#foreach指令
    如何修改Struts2 FiledError样式
    Mysql:User does not have access to metadata required to determine stored procedure parameter types.
    Velocity(8)——引入指令和#Stop指令
    GUI设计禁忌 之一 ——使用了错误的控件
    GUI设计禁忌——基本原则
    Velocity(9)——宏
    CentOS NFS配置
    Velocity(10)——指令的转义
    从HTML到SSI框架
  • 原文地址:https://www.cnblogs.com/wangdayang/p/14762330.html
Copyright © 2011-2022 走看看