课程:《程序设计与数据结构》

班级: 1723

姓名: 侯泽洋

学号:20172302

实验教师:王志强老师

实验日期:2018年5月30日

必修/选修: 必修

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)实验一:完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号

完成这个任务,首先需要了解Android应用程序文件的组成:

  • src:

    在src目录中保存了开发人员编写的程序文件。

  • manifest:

    其中包含了AndroidManifest.xml。这是一个控制文件,用来描述应用程序。

  • res:

    存放了应用程序使用到的各种资源,如xml界面文件、图片、数据等。通常包含drawable子目录、layout子目录、values子目录三个。

接下来是实验过程,实验中在text下加入内容学号,其中还对文本的背景颜色和文字颜色进行了修改,实验结果:

(2)实验二:创建 ThirdActivity, 在ThirdActivity中显示自己的学号,修改代码让MainActivity启动ThirdActivity

这里是使用一个按钮,通过点击按钮实现这个启动另一活动,具体代码见下:

Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent intent = new Intent(MainActivity2.this,ThirdActivity.class); // 创建一个Intent对象
startActivity(intent);
//Toast.makeText(MainActivity.this, "Hello world!", Toast.LENGTH_SHORT).show();
}
});

实验完成过程截图:



(3)实验三:修改代码让Toast消息中显示自己的学号信息

这里我是通过按钮实现Toast消息显示,Toast有很多用法,如默认显示、自定义显示位置、带图片的显示、完全自定义显示、其他线程调用显示等等。

其中实现代码见下:

Button btnshow1 = (Button) findViewById(R.id.button);
btnshow1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Toast toast = Toast.makeText(MainActivity.this,"20172302", Toast.LENGTH_LONG);
toast.show();
}
});

完成实验截图:

(4)实验四:修改布局让P290页的界面与教材不同

书上给出的代码例子包括以下布局:

线性布局LinearLayout:将所有子视图以相同方向(水平地或竖直地)对齐的一个布局;

相对布局RelativeLayout:根据子视图的一个或多个同级视图的位置来排列它的一个布局;

帧布局FrameLayout:将每一个子视图放在另一个视图顶部的一种布局;

表格布局TableLayout:将子视图按照行和列来组织的一种布局;

网格布局GridLayout:将子视图放置到一个栅格中的一种布局

该项实验主要考察书上内容,对书上的代码进行修改就可以实现,其中完成实验时将水平布局更改为垂直布局。这里修改的是res目录下的layout文件夹下的文件,是对布局文件进行的修改,修改后结果见下图:



(5)实验五:运行教材相关代码

这里的就比较简单一些,对教材代码运行相关截图见图:





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

  • 问题1:实验开始之前就已经遇到的书上的代码的导入问题,gradle版本不匹配的问题。

  • 问题1解决方案:这个问题一开始不是这样,具体是什么错误没有保存下来,从网上找了很多种解决方案,包括修改build.gradle文件还有那个gradle版本的更改,从网上也下了好多版本的gradle压缩包,最后都没有解决,但是错误的类型是会不断的发生变化,这里就完全的是不太了解,有的时候有些问题多弄几次就可以调好,不知道是否与网速有关系。回到这个问题,最终的解决办法是去修改File--Project Structure--Project中的内容,具体的修改见下面,



这里的修改主要就是为了是书上代码的gradle版本与我们所使用的这个最新版的Android Stutio 的gradle版本相匹配,当然也可能是可以去下载那个版本的gradle,但是我试了很多遍都没有成功。修改完以后会有一些警告,但程序已经可以执行了,这里的警告主要就是说'compile'这个词在2018年年底将会被'implementation'所完全取代,但现在完全是可以用,如果想要不显示这个警告,可以去build.gradle文件中将这个词改换一下,就不会再显示。

  • 问题2:关于将代码上传到码云,这里使用git进行上传,始终是push rejected

  • 问题2解决方案:这里通过搜索,找到了一种方法,在命令行模式下输入git pull origin master --allow-unrelated-histories,输入以后就是会可以正常上传。但偶尔还是会出现错误,这里遇到的另一种问题是git pull failed :

参考链接:Git出现error

这里的解决方案我采用了第二种的直接覆盖本地的文件,命令行输入git reset --hard,结果也就正常了。

  • 问题3:关于Android Stutio 中时不时的出现R类缺失的问题,出现"cannot resolve symbol R"的问题。这个好像原因有很多。有的时候发现下面正在进行这个indexing····的操作时,突然就会R类变红,这个时候等这个进程结束就会恢复正常。这个可能是在重构这个R类吧,导致R类的丢失。

  • 问题3解决方案:具体的解决方案:试过成功的有Build--Rebuild Project或者Build--Clean Project,这个是可以的,有的方法给出的再去创建一个R类,这个无效。然后从这里见了这么一种方法,留着备用。链接:Android Studio中R文件丢失的解决办法

其他(感悟、思考等)

  • 本周的收获是,第一次接触Android项目,遇到的问题很多,包括Android Stutio软件的使用也遇到了很多不会解决的问题,一开始接触的东西始终是很难去弄明白,希望到后面能轻松一点,第一次将自己的应用装到手机还是感觉很有意思的。这次的实验项目难度不大,主要是时间花在了前期的项目导入上,那个改动了很多次,花费了很多的时间精力,最后改出来以后做起这个实验的后几个项目来就不算困难了。

参考资料

20172302《程序设计与数据结构》实验四Android程序设计实验报告的更多相关文章

  1. 20172328《程序设计与数据结构》实验四 Android程序设计报告

    20172328<程序设计与数据结构>实验四 Android程序设计报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 李馨雨 学号:20172328 实验教师:王志 ...

  2. 实验四 Android程序设计 实验报告

    实验四 Android程序设计 实验报告 目录 代码托管地址 Android程序设计-1 Android程序设计-2 Android程序设计-3 Android程序设计-4 Android程序设计-5 ...

  3. 第十四周实验报告:实验四 Android程序设计

    20162317袁逸灏 第十四周实验报告:实验四 Android程序设计 实验内容 Android Studio 实验要求 学会使用Android Studio 学习 活动 以及相关知识内容 学习 U ...

  4. 20165235实验四 Android程序设计

    20165235实验四 Android程序设计 实验课程:JAVA编程设计 实验名称:Android开发 姓名:祁瑛 学号:20165235 实验时间:2018.05.16 指导老师:娄家鹏 Andr ...

  5. 20165220Java实验四 Android程序设计

    一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:葛宇豪 学号:20165220 指导教师:娄嘉鹏 实验日期:2018年5月14日 实验时间:13:45 - 15:25 实验序号:实验 ...

  6. 实验四 Android程序设计

    20155224 实验四 Android程序设计 实验报告 实验报告封面: 课程:Java程序设计 班级:1652班 姓名:王高源 学号:20165225 指导教师:娄嘉鹏 实验日期:2018年5月1 ...

  7. 20165236 实验四 Android程序设计

    20165236  实验四 Android程序设计 一.实验报告 课程:Java程序设计          班级:1652班 姓名:郭金涛       学号:20165236 指导教师:娄嘉鹏  实验 ...

  8. 20165205 2017-2018-2 《Java程序设计》实验四 Android程序设计

    20165205 2017-2018-2 <Java程序设计>实验四 Android程序设计 实验内容 实验四 Android程序设计-1 Android Stuidio的安装测试: 参考 ...

  9. 20155205 《Java程序设计》实验四 Android程序设计

    20155205 <Java程序设计>实验四 Android程序设计 一.实验内容及步骤 (一) Android Stuidio的安装测试 参考<Java和Android开发学习指南 ...

随机推荐

  1. C++:vector的用法详解

    原文地址:http://blog.csdn.net/hancunai0017/article/details/7032383 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于 ...

  2. java调用monkeyrunner(亲测绝对可行)

    我自己试验了下和官方的API编写不太一样,老别扭了,建议还是用Python写吧 昨天在网上查了一下一天,都是转来贴别人的,真正敲的很少,我真不知道转的大侠你们自己敲了么? 先截一段不负责任的blog图 ...

  3. matplotlib画堆叠条形图

    import matplotlib.pyplot as plt%matplotlib inlineplt.style.use('ggplot') plt.style.use("ggplot& ...

  4. MVC,MVP设计模式

    什么是MVP MVP是模型(Model).视图(View).主持人(Presenter)的缩写,分别代表项目中3个不同的模块. 模型(Model):负责处理数据的加载或者存储,比如从网络或本地数据库获 ...

  5. 深入理解JS中的变量及变量作用域

    JS的变量有两种,“全局变量”和“局部变量”. “全局变量”声明在函数外部,可供所有函数使用,(全局变量属于window)而“局部变量”声明在函数体内部,只能在定义该变量的函数体内使用. 1.全局变量 ...

  6. python通过Cookie跳过登录验证码

    1.通过浏览器获取登录cookie,找到重要的两个参数“BAIDUID”和“BDUSS”: 2.编写Selenium自动化测试脚本,跳过登录. from selenium import webdriv ...

  7. mysql 5.6 在线 DDL

    原文链接地址:http://seanlook.com/2016/05/24/mysql-online-ddl-concept/ 做MySQL的都知道,数据库操作里面,DDL操作(比如CREATE,DR ...

  8. 性能测试十八:jmeter分布式

    一台压力机产生得压力是有限的,尤其是jmeter,java本来性能就不是很好,并发特别多的时候,jmeter的性能会急剧下降,正常的接口,若单台压力机,超过1000并发以后,jmeter的性能就不怎么 ...

  9. 天天爱跑步&&弹球

    题解: 弹球题目地址:https://www.nowcoder.com/acm/contest/113/E 后面这题 应该是天天爱跑步的加强版本 原理都是查询子树中dep[x]+f[x]的值的个数 由 ...

  10. asp.net core环境变量详解

    环境变量详解 Windows操作系统的环境变量在哪设置应该都知道了. Linux(centos版本)的环境变量在/etc/profile里面进行设置.用户级的环境变量在其它文件里面,不多说了,有兴趣的 ...