本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(3)

Android Studio开发学习(一、用户登录)

发布于2024-11-02 10:35     阅读(309)     评论(0)     点赞(26)     收藏(2)


登录布局设定

制作一个简单登录页面

首先创建模板,这里选择Empty Activity(可根据自身需求来选择)

根据功能修改命名login(登录功能),打开菜单显示,我们可以找到主函数MainActivity和对应的布局函数activity_main

我们打开布局函数,可以根据要求设计布局,在design和Text界面切换界面视图和代码视图

代码如下,根据自己爱好可以设置高度、宽度、水平竖直布局、背景图片等等

LinearLayout:允许以水平或垂直的方式排列子视图(widgets),可以通过android:orientation属性设置LinearLayout的方向,horizontal表示水平排列,vertical表示垂直排列。通过给子视图设置android:layout_weight属性,可以控制子视图在LinearLayout中占据的空间比例。

TextView:用于显示文本的UI组件。通过android:text属性设置TextView显示的文本内容。可以通过android:textSizeandroid:textColor等属性设置文本的样式,如字体大小、颜色等。

EditText:一个允许用户输入文本的UI组件。通过android:inputType属性,可以指定EditText接受的输入类型,如数字、文本、密码等。android:hint属性用于设置当EditText为空时显示的提示文本。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    android:padding="10dp"
    android:background="@drawable/background1"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/TV_title"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginTop="100dp"
        android:gravity="center"
        android:text="明空"
        android:textColor="#090808"
        android:textSize="18sp" />

    <EditText
        android:id="@+id/ET_userName"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:textSize="16sp"
        android:hint="用户名"
        android:textColor="#000000"
        android:maxLines="1"
        android:padding="5dp"
        android:background="@drawable/bg_username"
        android:layout_marginTop="30dp"
        />

    <EditText
        android:id="@+id/ET_password"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:textSize="16sp"
        android:textColor="#000000"
        android:hint="密码"
        android:maxLines="1"
        android:padding="5dp"
        android:inputType="textPassword"
        android:background="@drawable/bg_username"
        android:layout_marginTop="20dp"
        />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="20dp"
        >

        <Button
            android:id="@+id/btn_login"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="登录"
            android:textColor="#000000"
            android:layout_gravity="center"
            android:background="@drawable/btn_left"

            />

        <Button
            android:id="@+id/btn_register"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="注册"
            android:textColor="#000000"
            android:layout_marginLeft="4dp"
            android:layout_gravity="center"
            android:background="@drawable/btn_right"

            />

    </LinearLayout>

</LinearLayout>

接下来我们来看一下布局中透明框的设置,为方便后期调用这里在drawable封装3个xml布局,分别是bg_username,btn_left,btn_right

<stroke>元素定义了形状的边框,<corners>元素定义了形状的边角如何被圆角化

bg_username

btn_left

btn_right

当然,这些颜色定义声明以及模板边框之类的都可以自由更改

values中colors,点击左边颜色框就可以更改选择其他颜色,为了方便起见,我们可以自定义一些常用的颜色,便于之后布局中使用

自定义常用颜色

点击values中styles.xml可以看到模板风格,如果你不想要上面自带的绿色显示,可以进入styles

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

更换为

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

实机演示登录界面如下:(颜色大小高度宽度等设置不同,显示有差异,可自行调整)

好的,到这里我们完美的设计了一个界面,那么如何实现他的登录功能呢,点击后如何调转

MainActivity函数功能

在布局函数中,我们设置了两个EditText和两个Button,所以我们首先要声明控件,让程序能够找到我们定义的控件,再给他增加点击功能。

直接实现点击跳转,我们为登录按钮增加点击功能,但是我们不仅仅要跳转,还要匹配正确的用户名,密码(可以自己设置,也可以注册存储利用数据库(此方法我们下篇介绍))

自定义用户名,密码:

public void onClick(View v){
    String username = mEtUser.getText().toString();
    String password = mEtPassword.getText().toString();
    //弹出内容设置
    String success = "登陆成功";
    String fail = "账号或密码有误,请重新登录";

    Intent intent = null;

    //假设正确账号密码  (***后面可用数据库连)
    if(username.equals("mk")&&password.equals("123456")){
        
        showMsg(MainActivity.this,success);

        //如果正确,跳转
        intent = new Intent(MainActivity.this,dataActivity.class);
        startActivity(intent);
    }
    else {
        
        showMsg(MainActivity.this,fail);
    }


}
public void showMsg(Context context, String msg) {
    if(mToast==null) {
        mToast = Toast.makeText(context,msg,Toast.LENGTH_SHORT);
    }else {
        mToast.setText(msg);
    }
    mToast.show();
}

跳转后界面为dataActivity,可根据自身要求按照上面主函数布局来设定跳转后界面布局

intent = new Intent(MainActivity.this,dataActivity.class);(这边跳转界面没有设置,所以是空白)

                    

完整代码如下

MainActivity.java

  1. package com.example.login;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.widget.Button;
  8. import android.widget.EditText;
  9. import android.widget.Toast;
  10. import com.example.login.R;
  11. public class MainActivity extends AppCompatActivity implements View.OnClickListener {
  12. // 声明控件
  13. private Button mBtnLogin;
  14. private Button mBtnRegister;
  15. private EditText mEtUser; //用户
  16. private EditText mEtPassword; //密码
  17. // 弹窗
  18. private Toast mToast;
  19. @Override
  20. protected void onCreate(Bundle savedInstanceState) {
  21. super.onCreate(savedInstanceState);
  22. setContentView(R.layout.activity_main);
  23. // 找到控件
  24. mBtnLogin = findViewById(R.id.btn_login);
  25. mBtnRegister = findViewById(R.id.btn_register);
  26. mEtUser = findViewById(R.id.ET_userName);
  27. mEtPassword = findViewById(R.id.ET_password);
  28. // //实现直接跳转
  29. // mBtnLogin.setOnClickListener(new View.OnClickListener() {
  30. // @Override
  31. // public void onClick(View v) {
  32. // Intent intent = null;
  33. // intent = new Intent(MainActivity.this,dataActivity.class);
  34. // startActivity(intent);
  35. // }
  36. // });
  37. //匹配对应用户名和密码进行跳转登录
  38. mBtnLogin.setOnClickListener(this);
  39. }
  40. public void onClick(View v){
  41. String username = mEtUser.getText().toString();
  42. String password = mEtPassword.getText().toString();
  43. //弹出内容设置
  44. String success = "登陆成功";
  45. String fail = "账号或密码有误,请重新登录";
  46. Intent intent = null;
  47. //假设正确账号密码 ***后面可用数据库连
  48. if(username.equals("lyj")&&password.equals("123456")){
  49. showMsg(MainActivity.this,success);
  50. //如果正确,跳转
  51. intent = new Intent(MainActivity.this,dataActivity.class);
  52. startActivity(intent);
  53. }
  54. else {
  55. showMsg(MainActivity.this,fail);
  56. }
  57. }
  58. public void showMsg(Context context, String msg) {
  59. if(mToast==null) {
  60. mToast = Toast.makeText(context,msg,Toast.LENGTH_SHORT);
  61. }else {
  62. mToast.setText(msg);
  63. }
  64. mToast.show();
  65. }
  66. }

activity_main.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. android:orientation="vertical"
  8. android:padding="10dp"
  9. android:background="@drawable/background1"
  10. tools:context=".MainActivity">
  11. <TextView
  12. android:id="@+id/TV_title"
  13. android:layout_width="match_parent"
  14. android:layout_height="50dp"
  15. android:layout_marginTop="100dp"
  16. android:gravity="center"
  17. android:text="明空"
  18. android:textColor="#090808"
  19. android:textSize="18sp" />
  20. <EditText
  21. android:id="@+id/ET_userName"
  22. android:layout_width="match_parent"
  23. android:layout_height="50dp"
  24. android:textSize="16sp"
  25. android:hint="用户名"
  26. android:textColor="#000000"
  27. android:maxLines="1"
  28. android:padding="5dp"
  29. android:background="@drawable/bg_username"
  30. android:layout_marginTop="30dp"
  31. />
  32. <EditText
  33. android:id="@+id/ET_password"
  34. android:layout_width="match_parent"
  35. android:layout_height="50dp"
  36. android:textSize="16sp"
  37. android:textColor="#000000"
  38. android:hint="密码"
  39. android:maxLines="1"
  40. android:padding="5dp"
  41. android:inputType="textPassword"
  42. android:background="@drawable/bg_username"
  43. android:layout_marginTop="20dp"
  44. />
  45. <LinearLayout
  46. android:layout_width="match_parent"
  47. android:layout_height="wrap_content"
  48. android:orientation="horizontal"
  49. android:layout_marginTop="20dp"
  50. >
  51. <Button
  52. android:id="@+id/btn_login"
  53. android:layout_width="0dp"
  54. android:layout_weight="1"
  55. android:layout_height="wrap_content"
  56. android:text="登录"
  57. android:textColor="#000000"
  58. android:layout_gravity="center"
  59. android:background="@drawable/btn_left"
  60. />
  61. <Button
  62. android:id="@+id/btn_register"
  63. android:layout_width="0dp"
  64. android:layout_weight="1"
  65. android:layout_height="wrap_content"
  66. android:text="注册"
  67. android:textColor="#000000"
  68. android:layout_marginLeft="4dp"
  69. android:layout_gravity="center"
  70. android:background="@drawable/btn_right"
  71. />
  72. </LinearLayout>
  73. </LinearLayout>

其他

三个透明框布局已经在上文中以图片形式给出,跳转后界面自己创建即可

(欢迎讨论,有错误地方请指出,博主也是接触不久小白一枚,感谢!)



所属网站分类: 技术文章 > 博客

作者:java战神

链接:http://www.javaheidong.com/blog/article/691582/937b454d04c297f5166d/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

26 0
收藏该文
已收藏

评论内容:(最多支持255个字符)