【快速解决】实验四 对话框 《Android程序设计》实验报告

目录

前言 

实验要求

实验四 对话框

正文开始

第一步建立项目

 第二步选择empty views activity点击next

​编辑

 第三步起名字,点击finish

第四步对 activity _main.xml文件操作进行布局

第五步,建立两个新文件,建立方法如下

SecondActivity.java中的代码

ThirdActivity.java中的代码

activity_ second.xml代码 

activity_third.xml代码 

 MainActivity.java代码

activity_main.xml代码 

运行结果如下

结语 


前言 

不会写《Android程序设计》实验报告没关系,小光手把手教你怎么写。

下来我们先看一下,这次老师布置的实验要求(●'◡'●)

实验要求

实验四 对话框
  • 实验目的和要求

掌握在界面设计时进行对话框的设计,对话框的事件监听及事件响应处理。

  • 实验内容

四种对话框至少实现3种,需要涉及至少3个页面。

  1. AlertDialog
  2. ProgressDialog
  3. DatePickerDialog
  4. TimePickerDialog

三、实验仪器、设备

PC一台 + Windows 操作系统 + Android Studio

四、实验原理

  1. AlertDialog:功能最为丰富,实际应用最为广泛的对话框。
  2. ProgressDialog:进度对话框,是对简单进度条的封装。
  3. DatePickerDialog:日期选择对话框。
  4. TimePickerDialog:时间选择对话框。
  5. 自定义对话框:对话框布局自定义,并设置监听事件

五、实验步骤

  1. 新建页面
  2. 插入对话框
  3. 对对话框属性和内容进行更改
  4. 监听对话框

六、实验注意事项

(一)机房的使用规范和用电安全。

(二)注意实践的监听代码写在.JAVA文件中。

七、实验报告要求

实验报告以书面/电子形式提交,严禁抄袭,一旦发现,即为零分。

实验报告主要内容包括实验名称、实验类型、实验地点、学时、实验环境、实验原理、实验步骤、实验结果、总结与思考等。

、实验成绩考核

实验成绩根据实验课的出勤、课堂表现、实验思考以及实验报告的书写情况打分,按百分制,实验成绩的平均值按30%比例计入课程总成绩。

注意:

 这篇文章中小光会带你们将老师布置的实验内容这部分,详细的讲解一下,大家可以直接复制代码,也可以学习一下怎么写,在这个基础上加以拓展,这样就不会查重了。

正文开始

小光的文章百分百可以成功!得到了大家的广泛认可

第一步建立项目

 第二步选择empty views activity点击next
 第三步起名字,点击finish

见到下面的页面我们的项目就算新建成功了 (是不是很简单),下来让我们开始,进行实验内容的实现。

第四步对 activity _main.xml文件操作进行布局

 老师要求的实验是长这个样子的,我们看一下👇👇👇

接下来我们来实现一下这三个对话框

下面展示一下我的布局

实际演示

 activity _main.xml中的代码如下,直接复制即可

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:id="@+id/btn_alert"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="显示AlertDialog"/><Buttonandroid:id="@+id/btn_progress"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="显示ProgressDialog" /><android.widget.Buttonandroid:id="@+id/btn_submit"android:layout_width="200dp"android:layout_gravity="center"android:layout_height="wrap_content"android:background="@drawable/but_1"android:text="提交"android:textColor="#000000"android:textSize="18sp"android:layout_marginTop="10dp"/></LinearLayout>

 然后你们看到的就会是这个结果

第五步,建立两个新文件,建立方法如下

因为我们要将其他两个对话框放在新的页面,所以要创建两个页面,创建方法如下。

第一个SecondActivity

第二个 ThirdActivity

下载开始直接复制即可,无脑复制,快速结束战斗(估计要花3分钟)

SecondActivity.java中的代码
import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import java.util.Calendar;
import android.app.DatePickerDialog;
import android.content.Intent;public class SecondActivity extends AppCompatActivity {private android.widget.Button mBtnLogin;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_second);// DatePickerDialog代码Button btnDate = findViewById(R.id.btn_date);btnDate.setOnClickListener(view -> {Calendar calendar = Calendar.getInstance();DatePickerDialog datePickerDialog = new DatePickerDialog(this,(datePicker, year, month, day) -> {// 处理选择结果},calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH));datePickerDialog.show();});//找到控件mBtnLogin=findViewById(R.id.btn_submit);//实现跳转直接跳转...方法一mBtnLogin.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = null;//从MainActivity页面跳转到FunctionActivity页面intent = new Intent(SecondActivity.this,ThirdActivity.class);startActivity(intent);}});}
}

 复制完后会看见这样子

ThirdActivity.java中的代码

import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import java.util.Calendar;
import android.app.TimePickerDialog;
public class ThirdActivity extends AppCompatActivity {private android.widget.Button mBtnLogin;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_third);// TimePickerDialog代码Button btnTime = findViewById(R.id.btn_time);btnTime.setOnClickListener(view -> {Calendar calendar = Calendar.getInstance();TimePickerDialog dialog = new TimePickerDialog(this, (timePicker, hour, minute) -> {// 处理选择结果}, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true);dialog.show();});//找到控件mBtnLogin=findViewById(R.id.abc);//实现跳转直接跳转...方法一mBtnLogin.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = null;//从MainActivity页面跳转到FunctionActivity页面intent = new Intent(ThirdActivity.this,MainActivity.class);startActivity(intent);}});}
}

activity_ second.xml代码 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:id="@+id/btn_date"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="显示DatePickerDialog"/><android.widget.Buttonandroid:id="@+id/btn_submit"android:layout_width="200dp"android:layout_gravity="center"android:layout_height="wrap_content"android:background="@drawable/but_1"android:text="提交"android:textColor="#000000"android:textSize="18sp"android:layout_marginTop="10dp"/></LinearLayout>

activity_third.xml代码 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:id="@+id/btn_time"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="显示TimePickerDialog"/><android.widget.Buttonandroid:id="@+id/abc"android:layout_width="200dp"android:layout_gravity="center"android:layout_height="wrap_content"android:background="@drawable/but_1"android:text="提交"android:textColor="#000000"android:textSize="18sp"android:layout_marginTop="10dp"/></LinearLayout>

 

 MainActivity.java代码
import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import java.util.Calendar;public class MainActivity extends AppCompatActivity {private android.widget.Button mBtnLogin;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// AlertDialog代码Button btnAlert = findViewById(R.id.btn_alert);btnAlert.setOnClickListener(view -> {AlertDialog dialog = new AlertDialog.Builder(this).setTitle("提示").setMessage("这是一个AlertDialog").setPositiveButton("确定", null).show();});// ProgressDialog代码Button btnProgress = findViewById(R.id.btn_progress);btnProgress.setOnClickListener(view -> {ProgressDialog dialog = new ProgressDialog(this);dialog.setTitle("加载中");dialog.setMessage("请稍等...");dialog.show();});//找到控件mBtnLogin=findViewById(R.id.btn_submit);//实现跳转直接跳转...方法一mBtnLogin.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = null;//从MainActivity页面跳转到FunctionActivity页面intent = new Intent(MainActivity.this,SecondActivity.class);startActivity(intent);}});}
}

activity_main.xml代码 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:id="@+id/btn_alert"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="显示AlertDialog"/><Buttonandroid:id="@+id/btn_progress"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="显示ProgressDialog" /><android.widget.Buttonandroid:id="@+id/btn_submit"android:layout_width="200dp"android:layout_gravity="center"android:layout_height="wrap_content"android:background="@drawable/but_1"android:text="提交"android:textColor="#000000"android:textSize="18sp"android:layout_marginTop="10dp"/></LinearLayout>

 很好,复制到这里,你的实验就算是完成了,接下来让我们运行看看效果吧

点击运行 

运行结果如下

这样就结束了,感谢大家的观看,百分百成功,不会出现运行不了的问题。但一定要按照小光的代码复制,全部复制粘贴就行了。这里强调一下,文件的名字,所有的名字必须都和展示的图片中一模一样,不然会报错。

结语 

关注小光,小光帮你写实验报告(不是真的帮你写,就是我写好,你直接复制拿走的那种)也可以看看小光的其他文章,小光是全能的。

🌌点击下方个人名片,交流会更方便哦~(欢迎到博主主页加入我们的 CodeCrafters联盟一起交流学习↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/149961.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

npm报错

npm报错 npm ERR! Fix the upstream dependency conflict, or retry npm ERR! this command with --force or --legacy-peer-deps npm ERR! to accept an incorrect (and potentially broken) dependency resolution. npm ERR! npm ERR! npm ERR! For a full report s…

16. Spring源码篇之指定构造方法参数

简介 为什么讲这个&#xff0c;是因为在spring使用构造方法注入的时候会有大量的判断&#xff0c;是不是指定了参数。如果指定了参数就可以使用不同的构造方法去实例化Bean&#xff0c;本文将介绍如何指定参数 使用 首先看一个例子 // 定义三个构造函数 public class UserB…

SLAM中提到的相机位姿到底指什么?

不小心又绕进去了&#xff0c;所以掰一下。 以我个人最直观的理解&#xff0c;假设无旋转&#xff0c;相机在世界坐标系的(5,0,0)^T的位置上&#xff0c;所谓“位姿”&#xff0c;应该反映相机的位置&#xff0c;所以相机位姿应该如下&#xff1a; Eigen::Matrix4d T Eigen::M…

Linux gdb调试的时候没有对应的c调试信息库怎么办?

gdb 调试报错&#xff1a;Missing separate debuginfos, use: debuginfo-install glibc-2.17-260.el7_6.6.x86_64 在centos7上面gdb调试程序时候&#xff0c;报错信息是&#xff1a; Missing separate debuginfos, use: debuginfo-install glibc-2.17-157.el7_3.5.x86_64 解决…

Redis学习笔记14:基于spring data redis及lua脚本ZSET有序集合实现环形结构案例及lua脚本如何发送到redis服务器

案例实现目标&#xff0c;一、实现一个环形结构&#xff0c;环形结构上节点有一个阀值threshold,超过阀值则移除分数score最低的成员&#xff0c;不足则将当前成员添加进环中&#xff0c;且确保成员不可重复&#xff1b;二、每次访问环中的数据都需要刷新key的过期时间&#xf…

亚马逊云科技AI创新应用下的托管在AWS上的数据可视化工具—— Amazon QuickSight

目录 Amazon QuickSight简介 Amazon QuickSight的独特之处 Amazon QuickSight注册 Amazon QuickSight使用 Redshift和Amazon QuickSightt平台构建数据可视化应用程序 构建数据仓库 数据可视化 Amazon QuickSight简介 亚马逊QuickSight是一项可用于交付的云级商业智能 (BI…

基于circle group的Reed-Solomon codes

1. 引言 Polygon团队Ulrich Habock等人2023年论文 Reed-Solomon codes over the circle group。 前序博客有&#xff1a; Plonky3 Mersenne素数域的Reed-Solomon codes设计 STARKs支持任意size的域&#xff0c;而不要求是椭圆曲线。STARKs中在选择域size时&#xff0c;越小…

Unity中 Start和Awake的区别

Awake和Start在Unity中都是MonoBehaviour脚本中的生命周期函数 Awake函数在游戏对象首次被加载时调用&#xff0c;在游戏对象初始化之前调用。 start函数在游戏对象初始化完成后调用&#xff0c;在update第一次执行前调用。 这两个函数在其生命周期内都只会调用一次&#xf…

替换sql,某个字段特定容

要替换wp_posts表中的wp_posts.post_content字段中的特定文本&#xff0c;可以使用MySQL的UPDATE语句和字符串替换函数来实现。 sql&#xff1a;语句 UPDATE 表名 SET 字段名 REPLACE(字段名, 原本内容, 替换内容);请注意&#xff0c;执行这样的操作可能会对数据库产生较大的…

verilog语言中条件编译ifdef的使用和例子

1条件编译ifdef 如果ifdef后面的参数被编译过&#xff0c;则编译ifdef语句后的内容&#xff0c;忽略else后面的内容&#xff0c;如果ifdef后面的参数没有被编译过&#xff0c;则编译else语句后面的内容&#xff0c;条件编译的范围以ifdef开始&#xff0c;以endif结束&#xff…

Android studio访问选程https接口(.crt handshake)

如果服务器是https的&#xff0c;访问受限怎么办&#xff1f;有两种方法&#xff0c;一种是接受一切证书个人官方正式非正式&#xff0c;当然这样就牺牲了安全性&#xff0c;网上方法很多&#xff0c;我现在教大家如何去验证crt文件 首先服务器是https的&#xff0c;必然有几个…

js数组操作——对象数组根据某个相同的字段分组

js数组操作——对象数组根据某个相同的字段分组 可以使用JavaScript的map()方法和reduce()方法来实现将数组中包含的数组对象的某个字段整合为数组的操作。具体实现方法如下&#xff1a; 假设有以下数组对象arr&#xff1a;let arr [{name: Tom, age: 18, hobbies: [reading,…

SpringBoot的启动流程

一、SpringBoot是什么&#xff1f; springboot是依赖于spring的&#xff0c;比起spring&#xff0c;除了拥有spring的全部功能以外&#xff0c;springboot无需繁琐的xml配置&#xff0c;这取决于它自身强大的自动装配功能&#xff1b;并且自身已嵌入Tomcat、Jetty等web容器&am…

redis+python 建立免费http-ip代理池;验证+留接口

前言: 效果图: 对于网络上的一些免费代理ip,http的有效性还是不错的;但是,https的可谓是凤毛菱角; 正巧,有一个web可以用http访问,于是我就想到不如直接拿着免费的HTTP代理去做这个! 思路: 1.单页获取ipporttime (获取time主要是为了后面使用的时候,依照时效可以做文章) 2.整…

windows环境搭建Zblog博客并发布上线公网可访问

文章目录 1. 前言2. Z-blog网站搭建2.1 XAMPP环境设置2.2 Z-blog安装2.3 Z-blog网页测试2.4 Cpolar安装和注册 3. 本地网页发布3.1. Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 想要成为一个合格的技术宅或程序员&#xff0c;自己搭建网站制作网页是绕…

总结 CNN 模型:将焦点转移到基于注意力的架构

一、说明 在计算机视觉时代&#xff0c;卷积神经网络&#xff08;CNN&#xff09;几十年来一直是主导范式。直到 2021 年 Vision Transformers (ViTs) 出现&#xff0c;这个领域才开始发生变化。现在&#xff0c;是时候采用受 Transformer 架构启发的基于注意力的模型了&#x…

Springboot+vue的机动车号牌管理系统(有报告)。Javaee项目,springboot vue前后端分离项目

演示视频: Springbootvue的机动车号牌管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的机动车号牌管理系统&#xff0c;采用M&#xff08;model&#xff09…

项目九、无线组网

目录 1 配置AC使AP放出Wifi1.1 确保AP和AC三层互通且AP知道AC的IP1.1.1 配置管理SVI的IP1.1.2 该SVI配置DHCP下发IP给AP 1.2 AC为AP下发配置1.2.1 AC用哪个接口回复AP1.2.2 AC验证AP身份&#xff08;可以不认证&#xff09;1.2.3 配置ssid 文件确定Wifi名称1.2.4 配置security …

Mac开发指南

文章目录 1 前期准备1.1 brew1.2 tmux 1 前期准备 1.1 brew 用于下载软件 ubuntu用apt-get mac用brew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"1.2 tmux

华纳云:租用的服务器连接超时怎么办?

服务器连接超时可能由多种原因引起&#xff0c;解决问题的方法取决于具体的情况。以下是一些常见的原因和相应的解决方法&#xff1a; 网络问题&#xff1a; 检查本地网络&#xff1a; 确保本地网络连接正常&#xff0c;尝试访问其他网站或服务&#xff0c;检查是否存在网络问题…