20182311 2019-2020-1 《数据结构与面向对象程序设计》实验五报告

20182311 2019-2020-1 《数据结构与面向对象程序设计》实验五报告

课程:《程序设计与数据结构》
班级: 1823
姓名: 冷冲
学号:20182311
实验教师:王志强
实验日期:2019年10月16日
必修/选修: 必修

1.实验内容

1.Android Stuidio的安装测试:
参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十四章:
参考http://www.cnblogs.com/rocedu/p/6371315.html#SECANDROID,安装 Android Stuidio
完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号,自己学号前后一名同学的学号,提交代码运行截图和码云Git链接,截图没有学号要扣分。
学习Android Stuidio调试应用程序
2.Activity测试
参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十五章:
构建项目,运行教材相关代码
创建 ThirdActivity, 在ThirdActivity中显示自己的学号,修改代码让MainActivity启动ThirdActivity
3.UI测试
参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十六章:
构建项目,运行教材相关代码
修改代码让Toast消息中显示自己的学号信息
4.布局测试:
参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十七章:
构建项目,运行教材相关代码
修改布局让P290页的界面与教材不同
5.事件处理测试:
参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十八章:
构建项目,运行教材相关代码
提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分

2. 实验过程及结果

1.测试Android,显示Helloworld+学号:只需要修改主活动xml文件里的text内容为学号。

2.测试Activity,创建ThirdActivity打印学号:这里主要用到了监听器和意图来实现由一个活动调用另一个活动并传递数据,以及onTouch方法控制调用的开始。需要注意的是每增加一个主活动以外的活动都需要在清单中进行活动注册,注册的内容与主活动的类似,主活动比其他活动多了意图过滤器实现整个app的入口。

3.测试UI组件:直接在主活动中添加

public void onClick(View v){
Toast.makeText(MainActivity.this,"20182311",Toast.LENGTH_SHORT).show();
}  

4.测试布局:主要使用了RelativeLayout和LinearLayout的混合使用。挨个调一下每个属性,试着从devise界面快捷操作,或者在xml文件里敲代码,最后调出结果。需要注意的是,直接拖出来的控件没有constraint,需要自己设置。而且很多情况下由于布局原因,手动拖拽不一定能起作用,针对布局的调整最好还是使用xml文件进行修改。

5.事件处理测试:主要学习了监听器的实现和onClick()等方法来处理一个事件。可以直接为一个控件绑定一个onClick来调用某个方法,这是快捷操作,也可以实现view.OnTouchListener接口来控制触碰事件。

3. 实验过程中遇到的问题和解决过程

  • 问题1:启动虚拟设备时,出现提示Error:Not enough disk space to run AVD
  • 问题1解决方案:模拟器路径下的avd文件夹就是用来存放模拟器镜像文件的,将该文件夹放入空间足够的磁盘,修改xxx.ini模拟器配置文件内的安装路径。重新运行模拟器。
  • 问题2:通过一个活动启动另一个活动的方法?
  • 问题2解决方案:使用Intent(意图)完成“跳转”。首先,在原活动onCreate()方法对textview文本框绑定监听器setOnTouchListener,复写onTouch(),在onTouch()中使用startActivity(intent)完成对另一个活动的调用。再在被启动的活动的onCreate()方法中添加对应方法接收信息。

    Intent(目的、意图)是一种运行时绑定机制(runtime binding),他能在程序运行的过程中连接两个不同的组件,可以应用程序内部的activity、server、broadcastreceive之间。通过Intent,程序可以向Android表达某种请求或意愿,Android会选择相应的组件来答复。

  • 我们可以通过:

    startActivity(Intent)/startActivityForResult(Intent):来启动一个Activity
    startService(Intent)/bindService(Intent):来启动一个Service
    sendBroadcast:发送广播到指定BroadcastReceiver

  • 显示Intent和隐示Intent:

    显示Intent通过组件名指定启动的目标组件
    隐示Intent不指定组件名,指定Intent的Action,Data,或Category,启动组件时,自动匹配AndroidManifest.xml相关组件的Intent-filter
    使用putExtra()和getStringExtra()方法完成数据传输

  • 问题3:LinearLayout和RelativeLayout?
  • 问题3:LinearLayout(线性布局)和RelativeLayout(相对布局)是安卓常用的两种布局方式,可以混合使用。简要学习了这两种布局的用法,比如为控件设置ID,可以通过访问ID调整两个控件之间的相对位置。线性布局是根据页面来的,基本有垂直、水平、顶端、底部等方式。
  • andoird五大布局简要介绍(更具体的布局属性查看参考资料第三条):
  • 问题4:xml文件中出现错误:Multiple root tags(多标签)
  • 问题4解决方案:发现是结束的标签结束代码处的/> 与 >出了问题。需要一一对应。
  • 问题5:什么是View.findViewById()?R.id.xxx?
  • 问题5解决方案:findViewByID()字面上能看懂是在所有的View中通过ID查找东西,R是指在一定范围内(包括整个项目)的所有,R.id.xxx指向项目里ID是xxx的东西。
  • 问题6:总结一下安卓的安源结构(清单、布局和活动类)
  • 问题6解决方案:看了大力博客里的几张图,觉得很好,拿来用用。

其他(感悟、思考等)

为了赶实验很快的浏览了一遍书就开始敲代码,结果浪费了很多时间,也没有完全弄懂。看懂再动手,磨刀不误砍柴工。

参考资料

原文地址:https://www.cnblogs.com/lengchong/p/11721942.html

时间: 2024-10-14 09:07:11

20182311 2019-2020-1 《数据结构与面向对象程序设计》实验五报告的相关文章

20182311 2019-2020-1 《数据结构与面向对象程序设计》实验二报告

20182311 2019-2020-1 <数据结构与面向对象程序设计>实验二报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 冷冲 学号:20182311 实验教师:王志强 实验日期:2019年9月16日 必修/选修: 必修 1.实验内容 (1) 编写简单的计算器,完成加减乘除模运算. (2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. (3) 编写测试代码,测试验证.(https://www.cnbl

20182311 2019-2020-1 《数据结构与面向对象程序设计》实验四报告

20182311 2019-2020-1 <数据结构与面向对象程序设计>实验四报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 冷冲 学号:20182311 实验教师:王志强 实验日期:2019年9月30日 必修/选修: 必修 1.实验内容 (一)Java Socket编程 1.学习蓝墨云上教材<Java和Android编程>"第16章 输入/输出 "和"第22章 网络",学习JavaSocket编程 2.结对编程.结

20182311 2019-2020-1 《数据结构与面向对象程序设计》第4周学习总结

目录 教材学习内容总结 教材4.8.1及第五章 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考试错题总结 结对及互评 点评过的同学博客和代码 感悟 学习进度条 参考资料 正文 20182311 2019-2020-1 <数据结构与面向对象程序设计>第4周学习总结 教材学习内容总结 教材4.8.1及第五章 迭代器和for循环 类和对象:子类与父类:继承.声明一个类不会分配内存空间,只有实例化对象才会分配空间.目前已知两种调用类的方法,通过实例化的对象调用,静态方法直接使

20182311 2019-2020-1 《数据结构与面向对象程序设计》第7周学习总结

目录 教材学习内容总结 教材第12章 教材第14章 教材第15章 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 2 结对及互评 点评过的同学博客和代码 感悟 学习进度条 参考资料 正文 20182311 2019-2020-1 <数据结构与面向对象程序设计>第7周学习总结 教材学习内容总结 教材第12章 算法效率可以用问题大小(n)和及处理步骤来定义.增长函数表示问题大小与希望优化的值之间的关系,该函数表示算法的时间或空间利用率. 我们更关心算法的渐进复杂度,用来表示增长函

20182311 2019-2020-1 《数据结构与面向对象程序设计》第8周学习总结

目录 教材学习内容总结 教材第13章 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 结对及互评 点评过的同学博客和代码 感悟 学习进度条 参考链接 正文 20182311 2019-2020-1 <数据结构与面向对象程序设计>第8周学习总结 教材学习内容总结 教材第13章 查找 线性查找:改进方法:设立哨兵,即将数组下标为0的内容设定为需要查找的数字,这样可以减少每次循环都对下标与最大值的比较,优化算法. 折半查找:时间复杂度为O(log2n),效率高,但只能用于有序线性存

20182327 2019-2020-1 《数据结构与面向对象程序设计》实验二报告

20182327 2019-2020-1 <数据结构与面向对象程序设计>实验二报告 课程:<程序设计与数据结构> 班级: 1823 姓名:赵天昊 学号:20182327 实验教师:王志强 实验日期:2019年9月16日 必修/选修: 必修 1.实验内容 (1) 编写简单的计算器,完成加减乘除模运算. (2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. (3) 编写测试代码,测试验证. 2. 实验过程及结果 不多说,上

20182319《数据结构与面向对象程序设计》实验二报告

20182319 2019-2020-1 <数据结构与面向对象程序设计>实验二报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 彭淼迪 学号:20182319 实验教师:王志强 实验日期:2019年9月16日 必修/选修: 必修 1.实验内容 (1) 编写简单的计算器,完成加减乘除模运算. (2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. (3) 编写测试代码,用规定方法测试验证. 2. 实验过程及结果

# 20182331 2019-2020-1 《数据结构与面向对象程序设计》实验二报告

20182331 2019-2020-1 <数据结构与面向对象程序设计>实验二报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 高宽让 学号:20182331 实验教师:王志强 实验日期:2019年9月16日 必修/选修: 必修 1.实验内容 (1) 编写简单的计算器,完成加减乘除模运算. (2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. (3) 编写测试代码,测试验证.(https://www.cnb

20182330 2019-2020-1 《数据结构与面向对象程序设计》实验二报告

20182330 2019-2020-1 <数据结构与面向对象程序设计>实验二报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 魏冰妍 学号:20182330 实验教师:王志强 实验日期:2019年9月16日 必修/选修: 必修 1.实验内容 编写简单的计算器,完成加减乘除模运算. 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. 编写测试代码,测试验证. 2. 实验过程及结果 编写简单计算器,借鉴c语言语法