Android:基本 UI 组件

2023-11-18

前言

组件是 Android 程序设计的基本组成单元,通过使用组件可以高效地开发 Android 应用程序。

文本类组件

Android 中提供了一些与文本显示、输入相关的组件,通过这些组件可以显示或输入文字。
TextView 类:用于显示文本的组件为文本框组件。
EditText 类:允许用户编辑文本内容。

举例说明:编辑框

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:background="#EAEAEA"
    tools:context=".MainActivity">

    <!-- 添加写说说编辑框 -->
    <EditText
        android:id="@+id/edit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:background="#FFFFFF"
        android:gravity="top"
        android:hint="说点什么吧..."
        android:inputType="textMultiLine"
        android:lines="6"
        android:padding="5dp"></EditText>

    <ImageView
        android:id="@+id/picture"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_below="@+id/edit"
        android:layout_marginStart="10dp"
        android:layout_marginTop="10dp"
        android:layout_marginEnd="10dp"
        android:layout_marginBottom="10dp"
        android:src="@drawable/addpicture" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="添加照片"
        android:layout_alignTop="@+id/picture"
        android:lines="5"
        android:layout_toRightOf="@+id/picture"
        android:padding="8dp"
        android:background="#FFFFFF"
        android:textColor="#767676"
        />

</RelativeLayout>

结果
结果

按钮类组件

在 Android 中,提供了一些按钮类的组件,主要包含普通按钮、图片按钮、单选按钮和复选框。
Button类:普通按钮,用于触发一个指定的事件。
ImageButton类:图片按钮,用于触发一个指定的事件。
RadioButton类:单选按钮,一组仅有一个可被选中。
CheckBox类:复选框。一组中可同时选中多个。

举例说明:单选按钮

public class MainActivity extends AppCompatActivity {
    Button bt;      //定义提交按钮
    RadioGroup rg;  //定义单选按钮

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt = (Button) findViewById(R.id.bt);     //通过ID获得布局提交按钮
        rg = (RadioGroup) findViewById(R.id.rg); //通过ID获得布局单选按钮组
        
        //练习:为A选项设置单击事件监听器
        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                RadioButton rb_a = (RadioButton) findViewById(R.id.rb_a);
                if(rb_a.isChecked()){
                    Toast.makeText(MainActivity.this, "目前选项为A", Toast.LENGTH_LONG).show();
                }
            }
        });


        //为提交按钮设置单击事件监听器
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                for(int i=0; i<rg.getChildCount(); i++){
                    //根据索引值获取单选按钮
                    RadioButton radioButton = (RadioButton) rg.getChildAt(i);
                    //判断单选是否被选中
                    if(radioButton.isChecked()){
                        //如果答案正确
                        if(radioButton.getText().equals("B:2")){
                            Toast.makeText(MainActivity.this,"回答正确", Toast.LENGTH_LONG).show();
                        }
                        //否则
                        else{
                            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                            builder.setMessage("回答错误,下面请看解析:由于苹果和梨是不同的两种水果,则小明一共有两种水果。");
                            //单击确定提示框消失
                            builder.setPositiveButton("确定",null).show();
                        }
                        break;  //跳出 for
                    }
                }
            }
        });
    }
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:padding="20dp"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="小明有一个苹果和一个梨,问小明有多少种水果?"
        android:textSize="25dp" />

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/rg"
        android:layout_below="@+id/text1">
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/rb_a"
            android:textSize="20dp"
            android:text="A:1"
            />
        <RadioButton
            android:id="@+id/rb_b"
            android:textSize="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="B:2"
            />
        <RadioButton
            android:id="@+id/rb_c"
            android:textSize="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="C:3"
            />
    </RadioGroup>

    <!-- 提交按钮 -->
    <Button
        android:id="@+id/bt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="提交"
        android:textSize="20dp"
        android:layout_below="@+id/rg"
        />

</RelativeLayout>

结果
结果

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:基本 UI 组件 的相关文章

随机推荐

  • [项目管理-27]:任务的目的,背后的原因是任务实施首要思考的问题。

    案例 无论是一个项目 还是一项任务 在实施之前 弄清楚原因 是项目经理必须有的思维模式 而不是无条件的盲目的执行 只有弄清楚目的和原因 才能在执行过程中 遇到问题时 发挥主观能动性 采用各种灵活变通的方法解决问题 最后确保项目的成功 另一方
  • Android Studio设计APP实现与51单片机通过WIFI模块(ESP8266-01S)通讯控制LED灯亮灭的设计源码【详解】

    目录 一 前言 二 效果展示 1 APP界面展示 2 C51硬件展示 三 Android Studio APP源代码 1 AndroidManifest xml 1 请求联网 2 开放明文传输 2 MainActivity java 3 L
  • python同步系统时间

    公司的电脑比较老旧 主板上的电池也没电了 每天都得手动调时间 自动同步也因为日期每天都被重置了而无法同步ntp服务器 想拆开换电池发现机箱也打开不了 emmm 无奈之下 自己做一个同步时间的脚本吧 然后用bat运行 加入开机启动项每天开机自
  • 员工分组-STL案例

    案例描述 1 公司今天招聘了10个员 ABCDEFGHUIJ 10名员工进入公司后 需要指派员工在那个部门工作 2 员工信息有 姓名 工资组成 部门分为 策划 美术 研发 3 随机给10名员工分配部门和工资 4 通过multimap进行信息
  • MySQL必知必会-笔记-Part3

    MySQL必知必会 笔记 Part3 Cha7 数据过滤 本章讲授如何组合WHERE子句以建立功能更强的更高级的搜索条件 以及NOT和IN操作符的使用 7 1 组合WHERE子句 第6章中介绍的所有WHERE子句在过滤数据时使用的都是单一的
  • JVM系列笔记(一)

    JVM的位置 JVM是运行在操作系统之上的 它与硬件没有直接的交互 JVM的整体结构 HotSpot VM是目前市面上高性能虚拟机的代表作之一 它采用解释器与即时编译器并存的架构 在今天 Java程序的运行性能早已脱胎换股 已经达到了可以和
  • xmind使用学习

    1 Background 这年头不画个思维导图都不好意思搬砖了 闲暇之余学习了下用xmind来画图 记录于此 2 Concept 主题 有中心主题和分支主题 子主题 一个主题的下一级主题叫子主题 自由主题 独立于中心主题 分支主题外的主题
  • 中山三院挂号服务器维护中,于广州中山三院的一次郁闷就诊

    最近不时地看到关于医院不负责任的报道 感叹的同时总觉得不可思议 那一直以为很神圣的地方现在对待生命的态度真的有这么随便么 没想到 一不小心 自己竟成为了被随便对待的那一个 事情的经过是这样的 这几天妈妈的胃一直很不舒服 于是10月8日早上陪
  • Matlab中readmatrix用法

    目录 语法 说明 示例 从文本文件中读取矩阵 从电子表格文件中读取矩阵 使用导入选项从指定的工作表和范围中读取矩阵 从指定的工作表和范围中读取矩阵 readmatrix是从文件中读取矩阵 语法 A readmatrix filename A
  • Minimal API in .NET 6 Using Dapper and SQL - Minimal API Project

    快捷键 prop public int MyProperty get set property ctor 创建一个构造函数 constructor part1 数据库 存储过程处理 最小的API 这里新建项目的时候没有用控制器 创建数据库文
  • position:absolute详解

    position absolute 日常开发中经常涉及元素的定位 我们都知道 绝对定位相对于最近position不为static的父级元素来定位 但其中定位的位置还是有细微的差别的 绝对定位根据left和top属性来规定绝对定位元素的位置
  • 使用克拉默法则进行三点定圆(三维)

    目录 1 三维圆 2 python代码 3 计算结果 本文由CSDN点云侠原创 爬虫网站请自重 1 三维圆 已知不共线的三个点 设其坐标为 x 1 y 1
  • 斯坦福cs224n教程--- 学习笔记1

    一 前言 自然语言是人类智慧的结晶 自然语言处理是人工智能中最为困难的问题之一 而对自然语言处理的研究也是充满魅力和挑战的 通过经典的斯坦福cs224n教程 让我们一起和自然语言处理共舞 也希望大家能够在NLP领域有所成就 二 先修知识 学
  • Python爬虫市场简单分析

    Python爬虫是目前互联网行业中最重要的组成部分之一 Python作为一门易学易懂的编程语言 不需要过多的软件环境和部署条件 基本覆盖了爬虫开发的大部分需求 是网络数据爬取和处理的首选技术之一 Python通过一系列优秀的爬虫框架和库的支
  • 设计模式三: 代理模式(Proxy) -- JDK的实现方式

    简介 代理模式属于行为型模式的一种 控制对其他对象的访问 起到中介作用 代理模式核心角色 真实角色 代理角色 按实现方式不同分为静态代理和动态代理两种 意图 控制对其它对象的访问 类图 实现 JDK自带了Proxy的实现 下面我们先使用JD
  • 从零到英雄:Vue CLI 让你成为前端开发高手(一)

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 前端炫酷代码分享 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架构咱们从0说 数据流通的精妙之道 文章目录 前言 1
  • 学习方法小结:

    好的学习方法 好的算法 高效率学习 gt 努力学习 1 学习要有目标不能太盲目 2 笔记很重要 整理笔记更重要 3 博客 论坛的运用十分关键 从量变到质变的过程需要去坚持 4 不要忘记复习 不能太依赖老师和他人的帮助 5 多提问 善于发现问
  • Pytorch学习笔记(III)——提取特征

    目录 一 引言 二 具体步骤 1 参数模型 2 网络结构 3 参数载入 4 特征提取器 5 读取图片 三 完整代码 一 引言 深度学习在许多任务中主要充当着特征学习的作用 而学习完的特征才是后续应用的一个关键 本文将主要介绍 如何提取任意目
  • SQL查询一对多返回一条数据

    一 查询中product和product img是一对多的关系 数据库是MySQL select p id p product cost price p product trade price p product sale price p
  • Android:基本 UI 组件

    前言 组件是 Android 程序设计的基本组成单元 通过使用组件可以高效地开发 Android 应用程序 文本类组件 Android 中提供了一些与文本显示 输入相关的组件 通过这些组件可以显示或输入文字 TextView 类 用于显示文