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. nginx安装扩展 sub_filter&http_ssl_module

    nginx之所以轻,因为默认没有安装各种各样的扩展: nginx安装扩展插件: 下面列出两个可能会用到的插件 一.sub_filter内容过滤器,这个在nginx做http转发的时候会很常用 1.下载 ...

  2. phalcon安装-遇坑php-config is not installed 解决方法

    通过源码编译安装php环境,按照phalcon官方文档安装扩展,会遇到php-config is not installed的坑. 尝试通过下列命令可以解决: cd /opt/cphalcon-/bu ...

  3. oracle 数据库密码过期

    查询密码过期策略 SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIM ...

  4. 为什么使用Reazor

    原因:类似于前边写的模板页,自己写了.还需要用replace来替换成自己想要的变量.. 常见的模板引擎:Razor.Nvelocity.Vtemplate. Razor有VS自动提示,而且有助于学习a ...

  5. Cmd下修改文件访问控制权限

    保证自己的磁盘分区格式是NTFS.FAT32是不行的. 一.Cacls.exe命令的使用 这是一个在Windows 2000/XP/Server 2003操作系统下都可以使用的命令,作用是显示或者修改 ...

  6. tkinter模块

    Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...

  7. PAT 1085 PAT单位排行(25)(映射、集合训练)

    1085 PAT单位排行(25 分) 每次 PAT 考试结束后,考试中心都会发布一个考生单位排行榜.本题就请你实现这个功能. 输入格式: 输入第一行给出一个正整数 N(≤10​5​​),即考生人数.随 ...

  8. PAT 1018 锤子剪刀布(20)

    1018 锤子剪刀布 (20)(20 分) 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方 ...

  9. Architecture.SOLID-Principles

    SOLID Principles Reference 1. Single Responsibility http://en.wikipedia.org/wiki/Single_responsibili ...

  10. eclipse中查找某一个字符串

    想要完全匹配查找一个字符串,如iCard,而iCardSys或iiCard这种都不行,可以用正则表达式来查找,如下: 参考链接:http://blog.csdn.net/u014656992/arti ...