20155205 《Java程序设计》实验四 Android程序设计
20155205 《Java程序设计》实验四 Android程序设计
一、实验内容及步骤
(一) Android Stuidio的安装测试
参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十四章:
- 安装 Android Stuidio
- 完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号,提交代码运行截图和码云Git链接,截图没有学号要扣分
- 学习Android Stuidio调试应用程序
- 将布局文件activity_main.xml中的
android:text="Hello World!"
改为android:text="Hello World20155305!"
。
结果如下:
- 相关知识:Android Studio项目的目录树
1.build
:该目录包含了自动生成的文件,这些文件包括了编译设置项、R类等。
2.libs
:该目录包含了开发Android应用所需要的库文件。
3.src
:该目录存放了应用的源代码.java文件。默认情况下,它包含了MainActivity.java文件,这个源代码j有一部分是执行了你点击应用图标时启动应用所需要功能。
4.res
:该目录存放了所有的资源文件。
5.drawable
:该目录存放了项目的drawable对象和一些图片资源。
6.layout
:该目录存放了各个界面的布局文件。
7.menu
:该目录存放了应用中设计的菜单对象。
8.mipmap
:该目录存放了应用的主要图片资源。
9.values
:该目录存放了字符串、颜色等定义的资源集合。
10.AndroidManifest.xml
:该文件是描述应用基础特性的文件,定义了每个组件。
(二) Activity测试
参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十五章:
- 构建项目,运行教材相关代码
- 创建 ThirdActivity, 在ThirdActivity中显示自己的学号,修改代码让MainActivity启动ThirdActivity
- 提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分
- way1.按照教材的内容,修改MainActivity中的代码
@Override
public boolean onTouch(View arg0, MotionEvent event) {
Intent intent = new Intent(this, ThirdActivity.class);
intent.putExtra("message", "20155305郝博雅");
startActivity(intent);
return true;
}
- way2.在第一个实验中,直接在MainActivity中添加
setContentView(R.layout.activity_third);
也能达到调用另一个activity的效果。
结果如下:
- 相关知识
Android中有四大组件,分别是Activity、Service、ContentProvider和Broadcast Receiver。对于Activity,它是Android系统中最常用、最常见的一个组件。一个应用通常包含了多个Activity。
Activity类定义了如下的回调事件:
- onCreate():这是第一个回调方法。当Activity首次被创建时会调用它。
- onStart():当Activity对于用户来说变为可视状态时会回调此方法。
- onResume():当用户开始与应用交互时会调用此方法。
- onPause():当前的Activity正在暂停中,并且先前的Activity正在恢复时,被暂停的这个Activity不会再接收用户的输入,也不再执行任何代码和调用。
- onStop():当Activity不再为可视状态时会调用该回调方法。
- onDestroy():该方法会在Activity被系统销毁前被调用。
- onRestart():当Activity在被停止后重新启动时,会调用该回调方法。
(三) UI测试
参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十六章:
- 构建项目,运行教材相关代码
- 修改代码让Toast消息中显示自己的学号信息
- 提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分
代码如下:
package com.example.a1.toast;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v){
Toast toast = Toast.makeText(MainActivity.this,"20155205", Toast.LENGTH_LONG);
toast.show();
}
});
}
}
结果如下:
相关知识
Android提供了许多的UI组件,你能按需构建应用的用户交互界面。
这些控件主要有: - TextView:文本标签,该控件用于显示文本。 - EditText:文本框,是预定义好的TextView的一个子类,有富文本编辑能力。 - AutoCompleteTextView:自动完成的文本标签,类似于EditText。当用户在输入的时候会自动给出一些完整的建议。 - Button:按钮,可以按压、点击,由用户完成一个动作。 - ImageButton:图片按钮,顾名思义。 - CheckBox:复选框,可以作为用户使用的一个开关。当有一系列可供选择的选项时,建议使用该控件。 - ToggleButton:带有一个“灯泡”效果的开关按钮。 - RadioButton:单选按钮,只有选中和未选中状态。 - RadioGroup:是RadioButton的集合,在同组内只能选中一个单选按钮。 - Spinner:下拉列表,允许用户在多个选项中选择一个。 - TimePicker:时间选择器,能让用户输入时间,有12小时和24小时模式。 - DatePicker:日期选择器,能让用户输入日期。 - ProgressBar:进度条,为用户提供某项工作的进度,比如后台正在做的事情。
(四) 布局测试
参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十七章:
- 构建项目,运行教材相关代码
- 修改布局让P290页的界面与教材不同
- 提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分
结果如下:
相关知识
布局的类型
- 线性布局LinearLayout:线性布局是一个视图组(ViewGroup),能在水平或者垂直的单一方向上将所有子元素排成一行。
- 相对布局RelativeLayout:相对布局是一个将子视图显示在相对的位置上的布局。
- 表格布局TableLayout:表格布局是在行、列中组合子元素的视图。
- 绝对布局AbsoluteLayout:绝对布局能让你指定子元素的精确位置。
- 帧布局FrameLayout:帧布局是一个屏幕上的占位符,你可以用它来显示单一视图。
- 列表视图ListView:列表布局是可以滚动的,是用于显示子元素列表的视图组。
- 网格视图GridView:网格视图是在二维可滚动的网格中显示子元素的视图组。
参考RelativeLayout常用属性介绍来学习相对布局。
(五) 事件处理测试
参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十八章:
- 构建项目,运行教材相关代码
- 提交代码运行截图和码云Git链接,截图要有学号水印,否则会扣分
p298的代码如下:
int counter = 0;
int[] colors = { Color.BLACK, Color.BLUE, Color.CYAN,
Color.DKGRAY, Color.GRAY, Color.GREEN, Color.LTGRAY,
Color.MAGENTA, Color.RED, Color.WHITE, Color.YELLOW };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
public void changeColor(View view) {
if (counter == colors.length) {
counter = 0;
}
view.setBackgroundColor(colors[counter++]);
}
当用户按下(或触碰)时钟的时候,会调用该方法并接受时钟对象。要修改时钟的颜色,需要调用其setBackgroundColor方法,传入一个颜色对象,从而实现触碰时钟改变颜色。
结果如下:
二、分析与总结
(一)遇到的问题及解决方案
问题1:写程序时出现了R变成红色,丢失的情况。
问题1解决方案:参考R丢失。
(二)PSP
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 5min | 5% |
设计 | 10min | 10% |
代码实现 | 50min | 50% |
测试 | 15min | 15% |
分析总结 | 20min | 20% |
(三)参考资料
20155205 《Java程序设计》实验四 Android程序设计的更多相关文章
- 20165205 2017-2018-2 《Java程序设计》实验四 Android程序设计
20165205 2017-2018-2 <Java程序设计>实验四 Android程序设计 实验内容 实验四 Android程序设计-1 Android Stuidio的安装测试: 参考 ...
- 20155314 2016-2017-2 《Java程序设计》实验四 Android程序设计
20155314 2016-2017-2 <Java程序设计>实验四 Android程序设计 实验任务 基于Android Studio开发简单的Android应用并部署测试 了解Andr ...
- 20165230 《Java程序设计》实验四 Android程序设计实验报告
20165230 <Java程序设计>实验四 Android程序设计实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导 ...
- 20155211 《Java程序设计》实验四 Android程序设计
20155211 <Java程序设计>实验四 Android程序设计 一.实验内容及步骤 1.Android Stuidio的安装测试: 安装 Android Stuidio 完成Hell ...
- 《JAVA程序设计》 20155208 实验四 Android程序设计
<JAVA程序设计> 20155208 实验四 Android程序设计 实验一: 实验要求: Android Stuidio的安装测试: 参考<Java和Android开发学习指南( ...
- 2016-2017-2 20155339《 java面向对象程序设计》实验四Android程序设计
2016-2017-2 20155339< java面向对象程序设计>实验四Android程序设计 实验内容 1.Android Stuidio的安装测试: 参考<Java和Andr ...
- 20165324 Java实验四 Android程序设计
20165324 Java实验四 Android程序设计 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:何春江 学号:20165324 指导教师:娄嘉鹏 实验日期:2018年5月1 ...
- # 20155224 实验四 Android程序设计
20155224 实验四 Android程序设计 任务一 Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for And ...
- 实验四 Android程序设计 实验报告
实验四 Android程序设计 实验报告 目录 代码托管地址 Android程序设计-1 Android程序设计-2 Android程序设计-3 Android程序设计-4 Android程序设计-5 ...
随机推荐
- 37-Arrays.sort() 由大到小排序 和 对象数组排序
1. 由大到小排序: 2. 对象数组排序: 1. 由大到小排序: 注意:必需是Integer 类型的数组!!! 方法一: import java.util.Arrays; import java.ut ...
- win下Apache2.4的下载与安装
1.到apache官网上下载apache的安装文件 http://httpd.apache.org/download.cgi 点击链接Files for Microsoft Windows,因为a ...
- mysql数据库存储经度纬度
使用float或者double会自动四舍五入,用decimal(20,17)当然你用varchar也是可以的
- 转 移动端-webkit-user-select:none导致input/textarea输入框无法输入
移动端webview中写页面的时候发现个别Android机型会导致input.textareat输入框无法输入(键盘可以弹起,不是webView.requestFocus(View.FOCUS_DOW ...
- vue之微信登录
参考文章https://www.cnblogs.com/examine/p/4634947.html 微信开放平台和公众平台的区别1.公众平台面向的是普通的用户,比如自媒体和媒体,企业官方微信公众账号 ...
- andorid EditView
<?xml version="1.0" encoding="utf-8"?> <GridLayout xmlns:android=" ...
- 使用Tophat+cufflinks分析差异表达
使用Tophat+cufflinks分析差异表达 2017-06-15 19:09:43 522 0 0 使用TopHat+Cufflinks的流程图 序列的比对是RNA分析 ...
- JoyOI1391 走廊泼水节
一道另类生成树 原题链接 将输入的树的\(n-1\)条边按从小到大排序,然后\(Kruskal\)在生成该树的过程中计算新增边的总长. 当在连第\(i\)条边,设该边的两端点为\(x,y\),长度为\ ...
- VirtualBox安装android-x86-4.4-r2
https://jingyan.baidu.com/album/a681b0de1373133b184346cf.html?picindex=10
- 强大的easygrid V7 ,可联系作者
增加历史记录事件 修改bug 修改风格 演示绑定表达式 下载demo