Android 常用的UI界面和组件综合应用

Posted 森然献凉i

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 常用的UI界面和组件综合应用相关的知识,希望对你有一定的参考价值。

效果图 (获取组件信息并显示)

 

直接上代码(注释已经很详细了,无需再讲解)

xml布局文件

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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">
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:ignore="MissingConstraints"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:orientation="horizontal">
        <TextView
            android:text="姓名"
            android:textSize="18dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

        </TextView>
        <EditText
            android:id="@+id/et_reg_name"
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        </EditText>
        <TextView
            android:text="年龄"
            android:textSize="18dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

        </TextView>
        <EditText
            android:id="@+id/et_reg_age"
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        </EditText>


    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:orientation="horizontal">
        <TextView
            android:text="电话"
            android:textSize="18dp"
            android:inputType="phone"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

        </TextView>
        <EditText
            android:id="@+id/et_reg_phone"
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        </EditText>
        <TextView
            android:text="住址"
            android:textSize="18dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

        </TextView>
        <EditText
            android:id="@+id/et_reg_addr"
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
        </EditText>

    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:orientation="horizontal">
        <TextView
            android:layout_gravity="center"
            android:text="性别"
            android:textSize="18dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        </TextView>

        <RadioGroup
            android:id="@+id/rg_reg_gender"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <RadioButton
                android:id="@+id/rb_male"
                android:text="男"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
            </RadioButton>
            <RadioButton
                android:id="@+id/rb_female"
                android:text="女"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

            </RadioButton>

        </RadioGroup>

    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:orientation="horizontal">
        <TextView
            android:text="爱好"
            android:textSize="18dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        </TextView>

        <CheckBox
            android:id="@+id/cb_reg_sport"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="体育">
        </CheckBox>
        <CheckBox
            android:id="@+id/cb_reg_music"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="音乐">
        </CheckBox>
        <CheckBox
            android:id="@+id/cb_reg_letter"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="文学">
        </CheckBox>
        <CheckBox
            android:id="@+id/cb_reg_travel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="旅行">
        </CheckBox>
    </LinearLayout>
    <LinearLayout
        android:gravity="center_horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:orientation="horizontal">
        <Button
            android:id="@+id/btn_reg_submit"
            android:text="提交"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        </Button>
        <Button
            android:layout_marginLeft="10dp"
            android:id="@+id/btn_reg_cancel"
            android:text="取消"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        </Button>
    </LinearLayout>
    <TextView
        android:id="@+id/tv_reg_content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </TextView>


</LinearLayout>


</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java

package com.cdw.study5;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

//实现OnClickListener接口
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button btnubmit;
    private Button btncancel;
    private EditText etname,etage,etphone,etaddr;
    private RadioGroup rgGender;//性别
    private CheckBox cbsport,cbmusic,cbletter,cbtraver;
    private TextView tvcontent;
    private String gender;//保存性别


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    /**
     * 初始化窗口视图
     */
    public void initView(){
        btnubmit=findViewById(R.id.btn_reg_submit);
        btncancel=findViewById(R.id.btn_reg_cancel);
        btnubmit.setOnClickListener(this);
        btncancel.setOnClickListener(this);
        etname=findViewById(R.id.et_reg_name);
        etage=findViewById(R.id.et_reg_age);
        etphone=findViewById(R.id.et_reg_phone);
        etaddr=findViewById(R.id.et_reg_addr);
        rgGender=findViewById(R.id.rg_reg_gender);
        cbsport=findViewById(R.id.cb_reg_sport);
        cbmusic=findViewById(R.id.cb_reg_music);
        cbletter=findViewById(R.id.cb_reg_letter);
        cbtraver=findViewById(R.id.cb_reg_travel);
        tvcontent=findViewById(R.id.tv_reg_content);

        //CheckBox的监听器
        CompoundButton.OnCheckedChangeListener checkedChangeListener=new CompoundButton.OnCheckedChangeListener() {
            @Override
            //compoundButton表示选中的CheckBox,b返回是否选中
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                //id作为判断依据
                switch (compoundButton.getId()){
                    case R.id.cb_reg_sport:
                        //如果已被选中
                        if (b==true){
                            Toast.makeText(MainActivity.this, "体育", Toast.LENGTH_SHORT).show();
                        }
                        break;
                    case R.id.cb_reg_music:
                        //如果已被选中
                        if (b==true){
                            Toast.makeText(MainActivity.this, "音乐", Toast.LENGTH_SHORT).show();
                        }
                        break;
                    case R.id.cb_reg_letter:
                        //如果已被选中
                        if (b==true){
                            Toast.makeText(MainActivity.this, "文学", Toast.LENGTH_SHORT).show();
                        }
                        break;
                    case R.id.cb_reg_travel:
                        //如果已被选中
                        if (b==true){
                            Toast.makeText(MainActivity.this, "旅行", Toast.LENGTH_SHORT).show();
                        }
                        break;

                }
            }
        };
        //将监听安装到四个CheckBox上,监听选中状态
        cbsport.setOnCheckedChangeListener(checkedChangeListener);
        cbmusic.setOnCheckedChangeListener(checkedChangeListener);
        cbletter.setOnCheckedChangeListener(checkedChangeListener);
        cbtraver.setOnCheckedChangeListener(checkedChangeListener);

        rgGender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            //返回被选中的id
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                //获取被转中的RadioButton
                RadioButton rb=findViewById(i);
                //获取选中RadioButton的文本(性别)
                gender=rb.getText().toString();
            }
        });

    }

    /**
     * 重写onClick方法触发按钮点击事件
     * @param view
     */
    @Override
    public void onClick(View view) {
        switch (view.getId()){
            //提交
            case R.id.btn_reg_submit:
                //存放爱好
                StringBuilder hobby=new StringBuilder();
                //如果被选中则添加该爱好文本(体育)
                if (cbsport.isChecked()){
                    hobby.append(cbsport.getText().toString()).append("  ");
                }
                //如果被选中则添加该爱好文本(音乐)
                if (cbmusic.isChecked()){
                    hobby.append(cbmusic.getText().toString()).append("  ");
                }
                //如果被选中则添加该爱好文本(文学)
                if (cbletter.isChecked()){
                    hobby.append(cbletter.getText().toString()).append("  ");
                }
                //如果被选中则添加该爱好文本(旅行)
                if (cbtraver.isChecked()){
                    hobby.append(cbtraver.getText().toString());
                }

                //添加信息文本
                StringBuilder info=new StringBuilder();
                info.append("姓名"+etname.getText().toString()+"\\n");
                info.append("年龄"+etage.getText().toString()+"\\n");
                info.append("电话"+etphone.getText().toString()+"\\n");
                info.append("住址"+etaddr.getText().toString()+"\\n");
                info.append("性别"+gender+"\\n");
                info.append("爱好"+hobby.toString());

                //将info填充文本框
                tvcontent.setText(info.toString());
                break;
                //取消
            case R.id.btn_reg_cancel:
                break;
        }

    }
}

希望对各位有帮助

结束

以上是关于Android 常用的UI界面和组件综合应用的主要内容,如果未能解决你的问题,请参考以下文章

android 布局之滑动探究 scrollTo 和 scrollBy 方法使用说明

Android Studio入门:Android应用界面详解(上)(View布局管理器)

七华为鸿蒙HarmonyOS应用开发之Java UI框架常用Text组件和Button组件使用

Android UI常用组件

XML布局界面

Android开发在代码中控制UI界面