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程序设计的更多相关文章

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

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

  2. 20155314 2016-2017-2 《Java程序设计》实验四 Android程序设计

    20155314 2016-2017-2 <Java程序设计>实验四 Android程序设计 实验任务 基于Android Studio开发简单的Android应用并部署测试 了解Andr ...

  3. 20165230 《Java程序设计》实验四 Android程序设计实验报告

    20165230 <Java程序设计>实验四 Android程序设计实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导 ...

  4. 20155211 《Java程序设计》实验四 Android程序设计

    20155211 <Java程序设计>实验四 Android程序设计 一.实验内容及步骤 1.Android Stuidio的安装测试: 安装 Android Stuidio 完成Hell ...

  5. 《JAVA程序设计》 20155208 实验四 Android程序设计

    <JAVA程序设计> 20155208 实验四 Android程序设计 实验一: 实验要求: Android Stuidio的安装测试: 参考<Java和Android开发学习指南( ...

  6. 2016-2017-2 20155339《 java面向对象程序设计》实验四Android程序设计

    2016-2017-2 20155339< java面向对象程序设计>实验四Android程序设计 实验内容 1.Android Stuidio的安装测试: 参考<Java和Andr ...

  7. 20165324 Java实验四 Android程序设计

    20165324 Java实验四 Android程序设计 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:何春江 学号:20165324 指导教师:娄嘉鹏 实验日期:2018年5月1 ...

  8. # 20155224 实验四 Android程序设计

    20155224 实验四 Android程序设计 任务一 Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for And ...

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

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

随机推荐

  1. 37-Arrays.sort() 由大到小排序 和 对象数组排序

    1. 由大到小排序: 2. 对象数组排序: 1. 由大到小排序: 注意:必需是Integer 类型的数组!!! 方法一: import java.util.Arrays; import java.ut ...

  2. win下Apache2.4的下载与安装

    1.到apache官网上下载apache的安装文件 http://httpd.apache.org/download.cgi   点击链接Files for Microsoft Windows,因为a ...

  3. mysql数据库存储经度纬度

    使用float或者double会自动四舍五入,用decimal(20,17)当然你用varchar也是可以的

  4. 转 移动端-webkit-user-select:none导致input/textarea输入框无法输入

    移动端webview中写页面的时候发现个别Android机型会导致input.textareat输入框无法输入(键盘可以弹起,不是webView.requestFocus(View.FOCUS_DOW ...

  5. vue之微信登录

    参考文章https://www.cnblogs.com/examine/p/4634947.html 微信开放平台和公众平台的区别1.公众平台面向的是普通的用户,比如自媒体和媒体,企业官方微信公众账号 ...

  6. andorid EditView

    <?xml version="1.0" encoding="utf-8"?> <GridLayout xmlns:android=" ...

  7. 使用Tophat+cufflinks分析差异表达

    使用Tophat+cufflinks分析差异表达  2017-06-15 19:09:43     522     0     0 使用TopHat+Cufflinks的流程图 序列的比对是RNA分析 ...

  8. JoyOI1391 走廊泼水节

    一道另类生成树 原题链接 将输入的树的\(n-1\)条边按从小到大排序,然后\(Kruskal\)在生成该树的过程中计算新增边的总长. 当在连第\(i\)条边,设该边的两端点为\(x,y\),长度为\ ...

  9. VirtualBox安装android-x86-4.4-r2

    https://jingyan.baidu.com/album/a681b0de1373133b184346cf.html?picindex=10

  10. 强大的easygrid V7 ,可联系作者

    增加历史记录事件 修改bug 修改风格 演示绑定表达式 下载demo