Android Studio 中使用 java 的用户登录页面示例

发布:2024-10-26 09:43 阅读:12 点赞:0

一. 创建安卓应用

首先,你需要使用 Android Studio 创建一个新的 Android 应用。创建完成后,会自动生成两个基础文件:MainActivity.javaactivity_main.xml。这两个文件分别对应应用的主活动和主界面的布局。

二. 布局设计

activity_main.xml 文件中,我们将设计登录界面的布局。这包括用户名和密码的输入框以及一个登录按钮。

<?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:layout_centerVertical="true"
    android:orientation="vertical"
    tools:context=".MainActivity"
    tools:visibility="visible">


    <!-- 登录页面标题 -->
    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Login page"
        android:textSize="20dp" />


    <!-- 登录页面的图片 -->
    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:srcCompat="@drawable/login" />


    <!-- 包含用户名和密码输入框的线性布局 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:id="@+id/toolbar"
        android:layout_height="match_parent"
        android:background="#3412"
        android:textAlignment="gravity"
        android:orientation="vertical">


        <!-- 用户名输入框的容器 -->
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">


            <!-- 用户名标签 -->
            <TextView
                android:id="@+id/textView9"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="User Name" />


            <!-- 用户名输入框 -->
            <EditText
                android:id="@+id/editTextTextEmailAddress3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="textEmailAddress" />

        </LinearLayout>

        <!-- 密码输入框的容器 -->
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">


            <!-- 密码标签 -->
            <TextView
                android:id="@+id/textView01"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Password" />


            <!-- 密码输入框 -->
            <EditText
                android:id="@+id/editTextNumberPassword2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="numberPassword" />

        </LinearLayout>

        <!-- 登录按钮 -->
        <Button
            android:id="@+id/button2"
            android:layout_width="186dp"
            android:layout_height="wrap_content"
            android:onClick="movepage"  <!-- 点击事件触发方法 -->

            android:text="Login" />
    </LinearLayout>
</LinearLayout>

三. 事件处理

MainActivity.java 文件中,我们将编写事件处理逻辑。当用户点击登录按钮时,会触发 movepage 方法,该方法会检查用户名和密码,然后根据验证结果给出相应的提示。

public class MainActivity extends AppCompatActivity {
    Button clk;  // 登录按钮
    EditText email, password;  // 用户名和密码输入框

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);  // 设置布局文件

        email = findViewById(R.id.editTextTextEmailAddress3);  // 获取用户名输入框
        password = findViewById(R.id.editTextNumberPassword2);  // 获取密码输入框
        clk = findViewById(R.id.button2);  // 获取登录按钮
    }

    // 登录按钮点击事件处理方法
    public void movepage(View view) {
        String stEmail = email.getText().toString();  // 获取输入的邮箱
        String stPwd = password.getText().toString();  // 获取输入的密码

        // 验证邮箱和密码是否正确
        if (stEmail.equals("abc@gmail.com") && stPwd.equals("1234")) {
            Toast.makeText(this"Login success with given input", Toast.LENGTH_SHORT).show();
            // 创建Intent对象,用于跳转到下一个活动
            Intent objIntent = new Intent(MainActivity.this, Activity2.class);
            // 创建Bundle对象,用于传递数据
            Bundle bundle = new Bundle();
            bundle.putString("email", stEmail);  // 将邮箱存入Bundle
            bundle.putString("pwd", stPwd);  // 将密码存入Bundle
            objIntent.putExtras(bundle);  // 将Bundle数据传递给Intent
            startActivity(objIntent);  // 启动下一个活动
        } else if (stEmail.isEmpty() && stPwd.isEmpty()) {
            // 提示用户输入邮箱和密码
            Toast.makeText(this"Enter Email and password", Toast.LENGTH_SHORT).show();
        } else {
            // 提示用户输入错误
            Toast.makeText(this"Wrong input", Toast.LENGTH_SHORT).show();
        }
    }
}

四. 数据传递

在登录成功后,我们使用 Bundle 来传递数据。Bundle 是一种数据结构,用于在应用内部传递数据,它支持多种数据类型,如字符串、布尔值等。通过 Intent 对象,我们可以将数据从一个活动传递到另一个活动。

五. 结论

通过上述步骤,我们实现了一个基本的登录流程,包括界面布局设计、事件处理以及数据传递。这个例子展示了 Android 应用开发中处理用户输入和活动间数据传递的基本逻辑。在实际开发中,你可能需要根据具体需求调整布局和逻辑,例如增加更多的用户输入验证或者使用更安全的方式处理用户数据。