实验四:Android 开发基础
实验四:实验报告
课程:程序设计与数据结构
班级: 1623
姓名: 张旭升
学号:20162329
指导教师:娄嘉鹏 王志强
实验日期:5月26日
实验密级: 非密级
预习程度: 已预习
必修/选修: 必修
实验序号: cs_29
实验名称: Java面向对象程序设计Android开发
实验内容
1.Android Stuidio的安装测试: 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十四章:
2.Activity测试: 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十五章:
3.UI测试: 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十六章:
4.布局测试: 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十七章:
5.事件处理测试: 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十八章:
实验要求
- 完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是 运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决 办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可 以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导
- 严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。
实验步骤
1.安装 Android Stuidio(注意环境配置)(详见安装教程)完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号学习Android Stuidio调试应用程序
2.Activity测试:构建项目,运行教材相关代码创建 ThirdActivity, 在ThirdActivity中显示自己的学号,修改代码让MainActivity启动ThirdActivity
3.UI测试:构建项目,运行教材相关代码修改代码让Toast消息中显示自己的学号信息
4.布局测试:构建项目,运行教材相关代码修改布局让P290页的界面与教材不同
5.事件处理测试:构建项目,运行教材相关代码
6.PSP时间表:在表格中统计项目各不周所花费的时间。
实验过程
1.安装Android studio
2.创建虚拟手机
3.Hello World!测试
4.四则运算项目实现
一.安装Android studio
1.安装Android studio


2.创建一个新的项目:

3.选择合适的Android版本:

4.创建一个新的活动:

二.创建虚拟手机:
1.选中一款自己喜欢的手机:

2.下载相关组件:

3.完成创建并运行它:


三.Hello World!测试
在我创建第一个活动的时候Android studio已经帮我们自动生成了Hello World!的相关代码
代码截图:
1.布局代码:

2.活动代码:

3.运行结果:

四.四则运算的代码实现:
由于我上周进行了四则运算的结对编程项目,这次想在Android开发下基于之前的代码做出一个相关的APP来,类似于小学口算题卡。
1.设计思路:
由于是第一次接触Android开发相关东西需要摸索就先设计一个简单的。
基于上周的代码我们首先需要一个用户选择题目数量和题目等级的窗口
然后需要调用代码中的
Practice中的方法来自动生成所需题目然后将生成的题目调用
Original转换为后缀表达式然后将后缀表达式用
Counts进行计算然后设置永辉回答界面,并对回答的问题进行判断正误
2.逐步实现:
- 用户输入界面使用EditText控件

- 然后将上周的相关代码拷贝至Android studio中

- 在将用户输入的信息作为参数传入题目生成方法然后传入下一个活动然后使用ListView把他们每一条的显示出来
局部代码:
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
prc.list.clear();
if(!editText1.getText().toString().equals("") && !editText2.getText().toString().equals("")) {
int A = Integer.parseInt(editText1.getText().toString());
int B = Integer.parseInt(editText2.getText().toString());
prc.Ti(A, B);
Intent intent = new Intent(MainActivity.this, PracticeActivity.class);
intent.putExtra("key",(Serializable) prc.list);
startActivity(intent);
}else {
Toast.makeText(MainActivity.this,"请正确输入!",Toast.LENGTH_SHORT).show();
}
}
});
运行结果:


- 在ListView显示的每一条信息中设置一个点击监听器,点击后可进入下一个模式对话框的活动来进行答题,并在答题后判断其对错。
代码展示:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_enter);
editText = (EditText) findViewById(R.id.editText3);
button = (Button)findViewById(R.id.button5);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String result = editText.getText().toString();
String A = getIntent().getStringExtra("key");
if (result.equals(A))
Toast.makeText(EnterActivity.this, "正确!", Toast.LENGTH_LONG).show();
else {
Toast.makeText(EnterActivity.this,("错误!\n 正确答案为:" + A),Toast.LENGTH_LONG).show();
}
finish();
}
});
}
运行结果:



实验中遇到的问题
- 前面从输入信息到生成题目都是很顺畅的没有什么大的问题,直到需要输入答案的时候出现了些问题,因为是初次了解
Android开发,不知道怎么给ListView的每一条item设置监听器,只好不停的范数,查资料。
解决方案:
在翻过很多书后没什么结果就去上网找,终于找到了一个ListView点击事件跳转的实例代码,我才知道原来ListView中对于每一个item都自带了一个可以设置点击事件的监听器,才终于实现了我想要的效果。
实验不足
本次实验中唯一可惜的是自己对于Android开发和Android中的相关类及方法都不熟悉,虽然自己有很多想法但是苦于无法实现,希望自己能在假期中花一点时间去学习学习这方面的相关知识。
实验心得
本次实验中我并没有完全按照老师的指示去一步步的完成,而是在老师所指定的基础上又自己学习了一些相关的知识,以至于自己可以达到将之前自己所写到产品代码在一个手机APP中实现出来,在做出这个口算题卡的APP时我是非常激动的,虽然它还是很简单,也存在一些bug但是对于在自己的努力下可以独立的完成这样一个小项目还是很有成就感的,希望自己可以再接再厉!!加油!!
实验四:Android 开发基础的更多相关文章
- 20145213 《Java程序设计》实验四 Android开发基础
20145213 <Java程序设计>实验四 Android开发基础 说在前面的话 不同以往实验,对于这次实验具体内容我是比较茫然的.因为点我,打开实验四的链接居然能飘出一股熟悉的味道,这 ...
- 实验四 Android开发基础
实验四 Android开发基础 实验内容 1.安装Android Studio 2.运行安卓AVD模拟器 3.使用安卓运行出虚拟手机并显示HelloWorld以及自己的学号 (一)SDK的安装 (二) ...
- 20145337实验四Android开发基础
20145337实验四Android开发基础 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管理器的使用: 掌握Android中事件处 ...
- 20145225《Java程序设计》 实验四 Android开发基础
20145225<Java程序设计> 实验四 Android开发基础 实验报告 实验内容 安装Android Studio 运行安卓AVD模拟器 使用安卓运行出虚拟手机并显示HelloWo ...
- 20145208 实验四 Android开发基础
20145208 实验四 Android开发基础 安装Android Studio 安装的具体步骤在老师的链接中已经很详细了,在此就不做赘述了. 在此提出我觉得安装的时候需要注意的两个地方 一是安装地 ...
- 20145215实验四 Android开发基础
20145215实验四 Android开发基础 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管理器的使用: 掌握Android中事件 ...
- 20165223 实验四 Android开发基础
实验四 Android开发基础 目录 一.实验报告封面 二.具体实验内容 (一)Android Stuidio的安装测试 (二)Activity测试 (三)UI测试 (四)布局测试 (五)教材代码测试 ...
- 20155324 《Java程序设计》实验四 Android开发基础
20155324 <Java程序设计>实验四 Android开发基础 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件. ...
- 20155228 实验四 Android开发基础
20155228 实验四 Android开发基础 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局管理器的使用: 3.掌握An ...
- 20155219实验四 Android开发基础设计实验报告
20155219实验四 Android开发基础设计实验报告 实验内容 安装Andriod Studio并配置软件 使用Andriod Studio软件实现Hello World!+学号的小程序 实验步 ...
随机推荐
- C#总结(六)EventBus事件总线的使用-自己实现事件总线
在C#中,我们可以在一个类中定义自己的事件,而其他的类可以订阅该事件,当某些事情发生时,可以通知到该类.这对于桌面应用或者独立的windows服务来说是非常有用的.但对于一个web应用来说是有点问题的 ...
- sql注入之一次艰难的绕过-三层防护(oracle)
打开:www.xxxx.com/news/detail.jsp?id=2862 我们经过测试知道此处含有sql注入.我们尝试下: http://www.xxxxxx.com/news/detail.j ...
- 系统及DB参数引发的“灾难”
最近,处理了一个系统及db参数设置不合理引发"灾难"的案例.前几天,接到某用户的紧急求助电话,同时,也收到了邮件.大概内容是:该用户某系统接连出现挂死现象,问题直指后台数据库(ai ...
- Python + request + unittest实现接口测试框架
1.为什么要写代码实现接口自动化 大家知道很多接口测试工具可以实现对接口的测试,如postman.jmeter.fiddler等等,而且使用方便,那么为什么还要写代码实现接口自动化呢?工具虽然方便,但 ...
- 28.Django cookie
概述 1.获取cookie request.COOKIES['key'] request.COOKIES.get('key') request.get_signed_cookie(key, defau ...
- Bootstrap 在手机页时,导航下拉自动回收
$(".menu-main").collapse("hide"); //.menu-main就是下来导航的类名
- windows下编译caffe报错:error MSB4062: 未能从程序集 E:\NugetPackages\OpenCV.2.4.10\......的解决办法
参考博客:http://blog.csdn.net/u013277656/article/details/75040459 在windows上编译caffe时,用vs打开后会自动加载还原NugetPa ...
- 使用MBROSTool 工具制作U盘多启动盘的方法总结
前段时间写了一个自用五合一多启动盘分享--分别用来维护娱乐,wifi密码破解,win&mac登陆密码绕过/清除,反馈的同学还是挺多,觉得大家都有这方面的需求,于是再把自己的使用经验总结一下. ...
- 对于最近线上服务以及京东等大型互联网公司对java工程师要求的一些思考
当下线上服务为了减少上线,经常搞成配置化,配置化对于版本以及持续集成本身是很大破坏,对于此,我个人持保留态度, 是反对过多东西进行配置化,其实配置化本身没有什么问题,关键是动态对配置进行修改而没有与代 ...
- MySQL聚集索引和非聚集索引
索引分为聚集索引和非聚集索引,mysql中不同的存储引擎对索引的底层实现可能会不同,这里只关注mysql的默认存储引擎InnoDB. 利用下面的命令可以查看默认的存储引擎 show variables ...