实验二 布局管理器及简单控件的使用

本文详细介绍如何使用Android Studio设计一个包含多种控件和布局管理器的登陆界面,包括TextView、EditText、Button等,并通过RadioGroup实现登录方式切换。

一、实验要求和目的

  1. 掌握Android常用的几种布局管理器;
  2. 掌握TextView、EditText、Button等常见控件的使用方法;
  3. 能够熟练应用各种布局管理器及控件进行界面设计。
    二、实验环境
    1、部署有Android Studio和Android SDK的主机;
    2、建议在机房的HelloWorld例子上完成。
    三、上机操作参考步骤
    1、在layout文件夹的布局文件activity_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"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/design_default_color_secondary"
            app:popupTheme="@style/AppTheme.PopupOverlay"
            app:title="shiyan2" />

    </com.google.android.material.appbar.AppBarLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:background="#ffffff "
        >
        <RadioGroup
            android:id="@+id/rg_login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:padding="10dp"
            android:layout_marginTop="45dp"
            android:layout_marginLeft="100dp">
            <RadioButton
                android:text="密码登录"
                android:id="@+id/rb_password"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:layout_marginRight="30dp"
                android:checked="true"
                ></RadioButton>
            <RadioButton
                android:text="验证码登录"
                android:id="@+id/rb_verifycode"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
            ></RadioButton>
        </RadioGroup>
        <TextView
            android:id="@+id/tv1"
            android:layout_width="90dp"
            android:layout_height="wrap_content"
            android:layout_below="@+id/rg_login"
            android:text="手机号码:"
            android:textSize="18dp"
            android:layout_marginTop="50dp"
            android:layout_marginLeft="50dp"></TextView>
        <EditText
            android:id="@+id/tv_number"
            android:layout_width="180dp"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/tv1"
            android:layout_below="@+id/rg_login"
            android:layout_marginTop="50dp"
            android:layout_marginLeft="10dp"
            android:textSize="18dp"
            >
            ></EditText>
        <TextView
            android:id="@+id/tv2"
            android:layout_width="90dp"
            android:layout_height="wrap_content"
            android:layout_below="@+id/tv1"
            android:text="登陆密码:"
            android:textSize="18dp"
            android:layout_marginTop="50dp"
            android:layout_marginLeft="50dp"></TextView>
        <EditText
            android:id="@+id/et_password"
            android:layout_width="180dp"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/tv1"
            android:layout_below="@+id/tv_number"
            android:layout_marginTop="50dp"
            android:layout_marginLeft="10dp"
            android:textSize="18dp"
            >
            ></EditText>
        <CheckBox
            android:id="@+id/ck_remember"
            android:layout_below="@+id/tv2"
            android:layout_marginTop="40dp"
            android:layout_marginLeft="50dp"
            android:layout_width="1000dp"
            android:layout_height="wrap_content"
            android:text="记住密码"
            ></CheckBox>
        <Button
            android:id="@+id/btn_forget"
            android:layout_toRightOf="@+id/et_password"
            android:layout_below="@+id/tv_number"
            android:layout_width="100dp"
            android:layout_height="29dp"
            android:layout_marginTop="50dp"
            android:textSize="8dp"
            android:text="忘记密码"></Button>
        <Button
            android:id="@+id/login"
            android:layout_below="@+id/ck_remember"
            android:layout_marginLeft="150dp"
            android:layout_width="150dp"
            android:layout_height="40dp"
            android:layout_marginTop="50dp"
            android:textSize="18dp"
            android:text="登录"></Button>
    </RelativeLayout>
</LinearLayout>
package com.example.shiyan2;

import android.os.Bundle;

import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

import org.w3c.dom.Text;


public class MainActivity extends AppCompatActivity {
    private TextView tv_password;
    private EditText et_password;
    private Button btn_forget;
    private RadioGroup rg_login;
    private CheckBox ck_remember;
    private RadioButton rb_verifycode;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //加载布局
        setContentView(R.layout.activity_main);
        //获取控件
        tv_password = findViewById(R.id.tv2);
        et_password = findViewById(R.id.et_password);
        btn_forget = findViewById(R.id.btn_forget);
        ck_remember = findViewById(R.id.ck_remember);
        rg_login = findViewById(R.id.rg_login);
        rb_verifycode = findViewById(R.id.rb_verifycode);
        //单选按钮组绑定监听器
        rg_login.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

            public void onCheckedChanged(RadioGroup group, int checkedId) {
                if (checkedId == R.id.rb_password) {
                    tv_password.setText("登录密码:");
                    et_password.setHint("请输入密码");
                    btn_forget.setText("忘记密码");
                    ck_remember.setVisibility(View.VISIBLE);
                } else if (checkedId == R.id.rb_verifycode) {
                    tv_password.setText("验证码:");
                    et_password.setHint("请输入验证码");
                    btn_forget.setText("获取验证码");
                    ck_remember.setVisibility(View.INVISIBLE);
                }
            }
        });
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值