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. Query to find the eligible indexes for rebuilding

    Query to find the eligible indexes for rebuilding The following script can be used to determine whic ...

  2. Angular5学习札记

    1.使用cnpm安装jQuery和bootstrap后,页面没有加载的问题 -使用cnpm安装的路径和使用npm安装路径不一样,解决如下: 把css路径改成"../node_modules/ ...

  3. vue2.0细节剖析

    1.样式切换 单个切换样式 /*html部分*/ <div class="bg" v-bind:class="{active:isActive}"> ...

  4. mysql 查看mysql相关信息

    登入数据库的时候: select @@version; select version(); 复制代码 mysql> select @@version; +-----------+ | @@ver ...

  5. c# Parallel.For 并行编程 执行顺序测试

    因为有个for 实际执行结果尽管是按照for里边的顺序执行,但处理器让哪个分线程先执行,谁先处理完就不一定了. 对于要求结果需要先后顺序的,比如对text内容的操作, 用并行 Parallel.For ...

  6. 4.Mysql中的运算符

    4.Mysql中的运算符运算符用来连接表达式.运算符包括:算术运算符.比较运算符.逻辑运算符.位运算符. 4.1 算术运算符算术运算符包括加(+).减(-).乘(*).除(/).取模(%,MOD) 5 ...

  7. Informatica_(4)工作流

    三.workflow执行.监控 workflow是PowerCenter的执行单元: 一个workflow包括一个或者多个session(或task). 1.session session是mappi ...

  8. (O)js核心:this

    什么是this this是js中的一个关键词,它总是指向一个对象,而具体指向哪个对象是在运行时基于函数的执行环境动态绑定的,而非函数被声明时的环境. 当函数被调用时,this被添加到作用域中,例如: ...

  9. 使用limma、Glimma和edgeR,RNA-seq数据分析易如反掌

    使用limma.Glimma和edgeR,RNA-seq数据分析易如反掌 Charity Law1, Monther Alhamdoosh2, Shian Su3, Xueyi Dong3, Luyi ...

  10. CODE[VS]2494 Vani和Cl2捉迷藏

    原题链接 这里有一个结论:最多能选取的藏身点个数等于最小路径可重复点覆盖的路径总数. 所以我们可以先传递闭包,然后求最小路径点覆盖即可. #include<cstdio> #include ...