使用 Android Studio 创建测验应用

Android Studio 笔记1.2 测试开发环境 Android Studio笔记1.2 测试开发环境 阅读详情

前言

对于 Android 应用程序开发人员来说,用户界面是关键。

您的应用程序可能具有最先进的功能,但如果它包含在一个不吸引人的 UI 中,用户不太可能会停留足够长的时间来发现您的应用程序到底有多棒。

在这个项目中,我们将介绍以下内容:

  • 线性布局
  • 多屏设计
  • 添加图片资源
  • 应用程序可访问性
  • 自定义 XML 样式
  • 制作按钮
  • 吐司通知

首先创建一个名为“QuizApp”的 Android 项目,并为空活动创建一个新活动。

定义一个线性布局

LinearLayout 是一种灵活的布局,它允许您组织 UI 元素之间的关系。此功能对于需要控制其 UI 组件的精确定位的开发人员特别有用。

<?xml version=”1.0” encoding=”utf-8”?>
<LinearLayout xmlns:android=”http://schmas.android.com/apk/res/android”
xmlns:app=”http://schemas.android.com/apk/res-auto”
xmlns:app=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”

多屏幕设计:背景图片:

在此处打开“res”文件夹,您可以添加要在应用屏幕中显示为背景的图像。

通过在您的测验应用程序中添加您想要的背景图像的 ID 来修改您的布局代码。

<?xml version=”1.0” encoding=”utf-8”?>
<LinearLayout xmlns:android=”http://schmas.android.com/apk/res/android”
xmlns:app=”http://schemas.android.com/apk/res-auto”
xmlns:app=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:gravity=”center”
android:background=”@drawable/ic_bg”
android:orientation=”vertical”
Tools:context=”.MainActivity”

创建按钮:

在主活动文件中,您可以创建自己的按钮并为其指定一个 ID,以便您可以在项目中的任何位置访问它。

这是我正在使用的完整主布局代码:

<?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:gravity="center"
    android:background="@drawable/ic_bg"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/tv_app_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="30dp"
        android:text="@string/app_name"
        android:gravity="center"
        android:textColor="@android:color/white"
        android:textSize="25sp"
        android:textStyle="bold" />

    <androidx.cardview.widget.CardView
        android:id="@+id/cv_main"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="20dp"
        android:layout_marginEnd="20dp"
        android:background="@android:color/white"
        app:cardCornerRadius="8dp"
        app:cardElevation="5dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:padding="16dp">

            <TextView
                android:id="@+id/tv_title"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="Welcome"
                android:textColor="#363A43"
                android:textSize="30sp"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/tv_description"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:layout_marginTop="16dp"
                android:text="Please enter your name."
                android:textColor="#7A8089"
                android:textSize="16sp" />

            <com.google.android.material.textfield.TextInputLayout
                android:id="@+id/til_name"
                style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp">

                <androidx.appcompat.widget.AppCompatEditText
                    android:id="@+id/et_name"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:imeOptions="actionGo"
                    android:hint="Name"
                    android:inputType="textCapWords"
                    android:textColor="#363A43"
                    android:textColorHint="#7A8089" />
            </com.google.android.material.textfield.TextInputLayout>

            <Button
                android:id="@+id/btn_start"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="16dp"
                android:background="@color/colorPrimary"
                android:text="Start"
                android:textColor="@android:color/white"
                android:textSize="18sp" />
        </LinearLayout>
    </androidx.cardview.widget.CardView>
</LinearLayout>

向您的测验应用程序添加问题:

在布局选项卡下添加另一个.xml文件,以将带有问题的页面添加到您的测验中,并为它们提供相应的 ID,以便它们易于访问。


上面的图像代码状态为测验中显示的图片提供 id。

给出图片后,您现在必须继续并给出答案的选项数量。另外,创建提交按钮。

<TextView
android:id="@+id/tv_option_one"
android:layout_width="match_parent"
android:layout_height="wrap_content" 
android:layout_margin="10dp"
android:background="@drawable/default_option_border_bg",
android:gravity="center" 
android:padding="15 dp" 
android:textcolor="#7A8089" 
android:textSize="18sp" 
tools:text="Apple"

重复上面的代码以获得尽可能多的选项。

在测验结束时制作一个最终提交按钮,然后转到 kotlin 文件以处理应用程序的功能。

编码 Kotlin 文件:

在此文件中,将 On Click Listener 设置为测验的开始按钮。

Kotlin 在点击监听器上

为您的 QuizApp 中显示的所有内容创建变量

package com.quizapp
data class Questions(
    val id: Int, 
    val question: String, 
    val image: Int, 
    val optionOne: String, 
    val option Two: String, 
    val optionThree: String, 
    val optionFour: String, 
    val correctAnswer: Int
)

将 On Click Listener 设置为所有选项和最终提交按钮:

tv_option_one.setOnClickListener(this) 
tv_option_two.setOnClickListener(this)
tv_option_three.setOnClickListener(this)
tv_option_four.setOnClickListener(this) 
btn_submit.setOnClickListener(this)

最后使用 Android Studio 提供的模拟器运行应用程序。繁荣!你刚刚制作了你的第一个应用程序 😃

最后

通过这篇文章,您了解了 Android UI 设计的基本要素,并创建了一个简单而有效的 UI,并具有一些工作功能。尝试将其中一些技术应用到您自己的 Android 项目中,以确保您的 UI 不会让您的应用程序失望。

安卓学习笔记02:测试安卓开发环境 文章目录一、创建安卓应用【HelloWorld】二、运行安卓应用【HelloWorld】 一、创建安卓应用【HelloWorld】 选择项目模板 - Empty Activity 配置项目基本信息 单击[Finish]按钮 二、运行安卓应用【HelloWorld】 选择安卓虚拟设备 单击运行按钮 ... 阅读详情

相关推荐

9、构建“Been There, Done That!”安卓应用框架

本文详细介绍了如何构建一个名为“Been There, Done That!”的安卓社交问答游戏应用框架。从游戏主题设定、屏幕功能规划、Activity类设计到项目创建、资源添加与活动实现,全面展示了安卓应用开发的完整流程。文章还涵盖了共享偏好使用、布局优化、调试配置等关键技术点,并提出了未来功能拓展方向,如多语言支持、成就系统和好友互动,帮助开发者掌握从原型搭建到持续优化的全过程。

Python的专栏 66

Android测试,Android Studio中的单元测试、UI测试和自动化测试使用说明第一篇

Android 测试支持库提供了大量用于测试 Android 应用的框架。此库提供了一组 API,让您可以为应用快速构建何运行测试代码,包括 JUnit 4 和功能性用户界面 (UI) 测试。您可以从 Android Studio IDE 或命令行运行使用这些 API 创建的测试。Android 测试支持库通过 Android SDK 管理器提供。如需了解详细信息,请参阅测试支持库设置本页介绍了 Android 测试支持库提供了哪些工具、如何在测试环境中使用这些工具,以及库版本的相关信息。

Jaiky_杰哥专栏 2691

深度解析大语言模型中的词向量

​ 在学习完语言模型中的编码器与解码器知识后,让我们继续深入学习大语言模型中一个非常关键的技术:词向量表示,以及如何通过Transformer模型实现对next token的预测。 ​

产品老A,8年互联网大厂AIPM,专注探索新型人机交互 3284

在Android Studio中进行单元测试和UI测试

本文基于TestDevTalk的文章,原文是基于AS旧版本的,现基于最新AS 2.1.3 功能进行了一些修改。

caoxiao90的博客 605

【专业书1】量化交易——从入门到精通

股票季节性策略几乎失效了,但商品期货的仍有效,因为其季节性需求源于真实的经济需求而非投机。交易策略获利的前提:交易价格处于均值回归(低价时买入)或动量状态(降价时先做空后以更低价买入),否则在随机游走状态下是无法有效交易的。构建交易策略实际上是在决定:在特殊条件、特定时间尺度下价格趋势的呈现(均值回归/趋势走势),以及用什么价格作为初始判断的参考价格。如果以高夏普比率为目标,需要更高的交易频率:基于大数定律,押注越多,偏离均值收益的偏差就越小。买同比最好的股票,卖同比最差的股票。但在不同的时间尺度下可以。

weixin_44589682的博客 1549

开源大模型推理GPU资源评估以及优化

随着大模型的火热很多项目中都使用到了开源大模型,这时候准确评估大模型的GPU资源非常重要,主要有下面几个方面:GPU是昂贵的资源。高估内存需求可能导致在硬件上的不必要支出,而低估则可能导致系统故障或性能下降。:适当的内存管理确保模型高效运行,能够更快地响应用户并处理更多并发请求。:随着需求的增长,理解内存需求对于在不牺牲性能或产生高昂成本的情况下扩展服务至关重要。尽管其重要性显而易见,但计算用于服务大型语言模型(LLM)的GPU内存并不简单。

优快云DN的博客 3117

用android studio 测试发行包

在google play 发行app,需要用bundle,而不是apk。 bundle 比apk 要小很多,比如我的app-release.aab 29,736 KB, 而app-release.apk 是62,305KB。这就是少了一半多。但是apk 直接复制就可以安装,bundle 需要上传google play ,然后下载安装。但我需要验证,特别是有问题时,本文介绍用android studio 来验证。

曾立文的博客 1005

公文流转系统

公文录入区 | QLineEdit(文号/标题)、QComboBox(公文类型/紧急程度)、QTextEdit(正文)、QListWidget(附件列表)、QPushButton(上传附件/保存草稿/提交审批) |// 按时间范围获取。QStringList userNames = {"张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑十一", "王十二"};

寒寒豆豆软件公司的博客 551

Android Studio使用Kotlin语言创建一个心理测试APP

Android Studio使用Kotlin语言创建一个心理测试APP 菜单功能 拖延指数测验、急迫性指数测验、关于、退出 文件配置 activity_main.xml : <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

qq_40901032的博客 2150

【RT-DETR涨点改进】全网独家首发Conv改进篇 | SCI一区 2025 | RT-DETR引入轻量级CGHalfConv通道分组半卷积模块,含多种创新改进、有效提升检测精度

本文介绍引入 GC Half-convolution 模块可以显著提升 RT-DETR 在资源受限环境下的性能。该模块通过通道分组与半卷积结合,有效减少了参数量与计算量,增强了模型对不同尺度和复杂背景下目标的特征提取能力。在保持模型轻量化的同时,GC Half-convolution 能够更细致地区分目标的边缘纹理、颜色、结构等关键信息,从而提升检测精度。特别是在面对小目标、多类别、形态相近的目标时,该模块能提取更具判别性的局部与全局特征,优化 RT-DETR 的检测效果,并加快推理速度。

Ai缝合怪、助力小伙伴高效发论文 746

UNet 改进(27):结合SCSE注意力机制的UNet网络实现

本文介绍了一种结合SCSE注意力机制的改进UNet网络架构。该网络在保持UNet经典编码器-解码器结构基础上,通过在每层添加SCSEBlock模块,融合了通道注意力和空间注意力机制。通道注意力通过全局池化和1×1卷积生成通道权重,空间注意力则产生空间权重图,二者相加增强关键特征响应。该设计具有以下优势:1)保持原始UNet的多尺度特征提取能力;2)通过注意力机制提升对重要区域的关注度;3)计算效率高,仅增加少量参数。测试显示网络能保持输入输出分辨率不变,适用于医学图像分割等像素级预测任务。完整代码实现了5层

2401_82355416的博客 415

Visual Studio 2010(VS)--数学口算测验器⑤

Visual Studio 2010(VS)--数学口算测验器⑤ 上期回顾(上期主要写了定时器功能,当开始测验时倒计时): 这期主要是想实现一个答案比对功能 1.0 首先写一个方法,用来比对答案,然后返回一个BOOL量 public bool CheckTheAnswer()//计算校验 { if (addend1 + addend2 == SUM.Value)//比对加法运算答案 { ...

老王的博客 323

裸眼3D技术发展与应用前景

这项技术利用传感器或摄像头实时监测观众的位置和视角,然后根据观众的位置信息动态调整投射的图像,确保不同位置的观众都能看到一致的3D效果。这种技术不仅可以在电影院和家庭影院中应用,还可以用于虚拟现实设备和大型展览等领域。裸眼3D呈现是一种不需要佩戴任何特殊设备(如3D眼镜或头盔)即可观看到3D效果的技术。这种技术近年来得到了快速发展,为观众带来了更加沉浸式的视觉体验。总之,裸眼3D呈现技术的发展为观众带来了更加真实、沉浸式的视觉体验。随着技术的不断进步和创新,相信未来裸眼3D将会在更多领域得到应用和推广。

学无止境 2003

如何用Android studio打包发布cocos2dx c++

cocos2dx c++在Android Studio 上打包 历经半个月,总算摸来摸去终于是能运行了,寄!!!!

一个人心の屋 8165

SIMATIC WINCC V8.0安装教程(Win11系统)

SIMATIC WINCC V8.0安装教程(Win11系统)

Robot_PLC_HMI_Automation 9055

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

安卓游戏编程(一)

Android 是增长最快的操作系统,Android 设备能够赋能、娱乐和教育整个地球。Android 使用最流行的编程语言之一——Java,这是一种高性能、安全且面向对象的编程语言。它是最广泛使用的操作系统,而游戏则是人们在手机上花费最多时间使用的应用。制作和分发视频游戏从未如此简单。谁不想为 Android 开发游戏呢?而且,制作游戏既有趣、上瘾,又非常有成就感;一旦开始,就很难停下来。当我们遇到障碍,不知道如何实现一个功能,或者将其集成到我们的游戏中时,问题就出现了。这门课程将帮助你从头开始使用 An

龙哥盟 994

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android Studio 秘籍(三)

有一些常见的陷阱要避免,以及一些模式,您可能希望应用以提高应用程序的质量。您已经在之前的章节中看到了其中一些。此外,还有一些有趣的工具可以用来测试和分析您的代码。在接下来的路线图中,您会注意到在将应用上线之前,您需要完成不同的阶段:您的代码结构、健壮性、可维护性以及其与功能要求的符合程度是关键因素。功能质量通过软件测试来衡量,因此我们需要将应用分发给我们的测试人员。我们将在第十章中讨论这一点,测试您的应用程序。

龙哥盟 1487

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Android Studio如何新建java基础项目?

为什么要新建java基础项目? Android 软件开发最开始是用java语言开发的,有些不常用,但是面试又会问道的java基础忘记了,想写个java Demo测验一下。单纯为一个demo去下载Intelij idea耗费时间。所以要是能直接用Android studio新建java项目就好了。 直接 psvm新建main()方法,再运行,不行吗? 也可以,不过每次运行都会触发gragle变异,运行速度比较慢。 而且写完代码,一般都会删除,不会保留。 Android studio 4.0.2版.

知道这个有什么用? 609

android studio访问服务器的方法(实测有效)

android studio访问服务器的方法 就目前我找过的服务器访问方法,好像大部分的服务器访问,都需要创建出一个新的子线程出来,供URL进行使用,才能够对服务器进行访问。关于为什么访问服务器的方法不能放在主线程,我也有些疑问,所以知道的小伙伴可以在下方留言。 代码展示 对代码进行进一步的梳理 创建URL的对象,对象里面闯入相关的服务器地址 使用HttpURLConnection进行URL的访问连接 这里获取返回码,是为了知道有没有连接成功,自己对服务器连接的一个测验,所以不要的小伙伴可以去掉 如果连

qq_46005796的博客 4273

android studio课程报告,前 Android Studio 门课程 - 在线学习 Android Studio | Coursera

Courses offered through Coursera that teach Android Studio equip learners with knowledge in software testing; Android software development; Java programming; object-oriented programming; and more.Less...

weixin_42116791的博客 127

网络资源模板--Android Studio 垃圾分类App

网络资源模板--Android Studio 垃圾分类App

编程乐学的博客 1371

通过构建安卓游戏学习 Java(一)

如果你完全不了解 Java、Android 或游戏编程,并且打算出版 Android 游戏以供娱乐或商业用途,但你不知道从哪里开始,那么这本书适合你。这本书也可以作为那些在其他平台上已经有经验的人的复习。Android 是增长最快的操作系统,Android 设备可以赋予、娱乐和教育全球。Android 使用最流行的编程语言之一——Java,这是一种高性能、安全、面向对象的语言。在每一章中,我们将在前一章学到的基础上构建,逐渐理解更高级的 Java 概念,并通过构建 Android 游戏来应用它们。

龙哥盟 866

androidstudio学习总结_Android 开发工程师自述:2年的开发,我总结了7条经验

全文共3547字,预计学习时长11分钟“纸上得来终觉浅,绝知此事要躬行。”“没有调查就没有发言权。”“实践出真知。”古今中外,无数名言警句都告诉我们实际去做一件事的重要性。笔者从最初对安卓开发萌生兴趣到现在已有两年之久了,期间做过几个项目也开发过别的,今天就跟大家分享一下这段时间里笔者亲身总结的7条经验。1.第三方库:找到正确的平衡点Android Arsenal上的一些库在开始第一个项目时,所有...

weixin_39830588的博客 527

基于Android的过程监控的学生成绩管理系统(Android studio毕业设计,Android课程设计)

未注册的用户输入用户名密码,则无法登录,可跳转到注册页面或者退出,点击登录后,将对用户名密码与数据库进行比对,一致则登录成功,进入系统主界面,否则,提示登录失败,需要重新登录。该模块是对课堂考勤情况进行记录。点击考勤统计功能,跳转至考勤统计功能页面,在这将所有同学默认为全勤的状态,如有同学缺勤,迟到,请假等情况,则可以通过找到该同学的信息,进行修改,或者利用搜索框搜索,然后进行修改。点击随堂测验功能,首先需判断用户身份,如果是学生,只能进行查看随堂测验的成绩,若当前没有录入随堂测验成绩,则显示当前无成绩。

u014388322的专栏 1986

android studio 课程,前 Android Studio 门课程 - 在线学习 Android Studio | Coursera

Courses offered through Coursera that teach Android Studio equip learners with knowledge in software testing; Android software development; Java programming; object-oriented programming; and more.Less...

weixin_30678347的博客 165

安卓开发项目

创建item_knowledge.xml文件,作为 RecyclerView 中每个 item 的布局文件,在 KnowledgeAdapter 的 onCreateViewHolder 方法中,使用 LayoutInflater 从 item_knowledge.xml 中获取视图并返回 ViewHolder 对象。在类中,通过定义私有属性,包括问题的ID、描述、难度、分数、选项A、B、C、D和答案等信息。在获取选项信息的方法中,将选项A、B、C、D的值存入List集合中,并返回该集合。

txy_200373的博客 659
上一篇: 在Android应用程序中享受传统-现代Java
下一篇: 如何在Android中用Java创建带有复选框的选项菜单
不秃头de程序猿
博客等级 码龄5年 4089粉丝 1478原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值