1、Android实训报告Android实训报告一、实训背景及目的要求1.1背景简介Android(读音:ndrid)是一种以Linux为基础的开放源码操作系统,主要使用于便携设备,目前尚未有统一中文名称,中国大陆地区较多人使用安卓或安致。Android操作系统最初由Andy Rubin创办5,最初只支持手机.2005年由Google收购注资,并拉拢多家制造商组成开放手机联盟(Open Handset Alliance)开发改良,逐渐扩展到到平板电脑及其他领域上6. 2010年末数据显示,仅正式推出两年的操作系统的Android已经超越称霸十年的诺基亚Symbian系统,跃居全球最受欢迎的智慧手机
2、平台。采用Android系统手机厂商包括HTC、Samsung、Motorola、Lenovo、LG、Sony Ericsson等.1。2实训目的及要求Android以Linux为核心的Android行动平台,使用Java作为编程语言。本实训是在学习java语言程序设计的基础上进行的一次综合实践。通过综合训练,要求学生掌握java语言程序设计的基本技能和Android编程的应用,并较系统地掌握JAVA语言程序设计开发方法以及帮助文件的使用等,使学生通过本次实训,能够进行独立的Android应用程序开发,能够在实际操作中得到进一步的提高,为以后的学习和工作打下良好的基础。目的:1、培养学生运用所
3、学课程Java语言程序设计的理论知识和技能,分析解决计算机实际应用中的问题的能力。2、培养学生在Java语言程序设计的基础上,开发Android应用程序的思想和方法。3、培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。通过课程设计,要求学生在指导教师的指导下,独立完成课程设计的全部内容,包括:1、确定开发的程序,收集和调查有关技术资料。2、按软件工程步骤进行程序设计。3、对完成的程序进行测试和完善.4、完成课程设计报告。二、设计思路2.1设计题目以Android系统的UI界面开发为基础,设计一个可以简单计算标准体重的应用程序,要求以2个Acitivity实现,第一个Activ
4、ity作为输入界面,第二个Activity作为结果输出界面,具体实现细节自行设计。2。2功能分析该设计题目要求实现可计算输出标准体重功能的应用程序。通过查阅资料可知,按照世界卫生组织推荐的计算标准体重的方法,需要获知的输入信息有性别、身高。故可在第一屏设置有单选框以确定性别,输入框以获取身高。另,为了增加程序的实用性,可再设一可选输入框,用来得到实际体重,与标准体重对比,给出用户一些健康提议。第二屏设置有结果输出显示区域与健康提示显示区域。2.3模块划分通过程序功能分析,可将程序划分为2个模块,即2个Activity:第一个Activity:两个单选框(RadioButton)获取性别,一个输
5、入框(EditText)获取身高,一个可选输入框(EditText)获取实际体重,一个按钮(Button)及一些提示文本。第二个Activity:一个文本显示区(TextViw)显示计算结果,一个可选文本显示区(TextView)显示提示信息。三、设计实现及代码分析3。1第一个Activity3。1。1布局文件:main.xml:采用绝对布局,以实现控件精准显示;RadioGroup包含两个RadioButton,以实现性别男女选择;两个供输入的EditText限定了输入类型为numberDecimal,以确保只接收数字型数据。main。xml完整代码如下:AbsoluteLayout xml
6、ns:android=”http:/schemas.android。com/apk/res/android android:orientation=”vertical android:layout_width=fill_parent android:layout_height=”fill_parent TextView android:id=”+id/tv1 android:layout_width=”wrap_content android:layout_height=wrap_content android:text=string/tv1_t android:textSize=”20sp”
7、 android:layout_x=50px android:layout_y=”25px” /TextView android:layout_width=wrap_content” android:layout_height=”wrap_content” android:text=”string/tv_sex android:layout_x=50px android:layout_y=”100px /TextView android:layout_width=”wrap_content android:layout_height=”wrap_content android:text=str
8、ing/tv_tall” android:layout_x=50px” android:layout_y=”150px” /RadioGroup android:id=”+id/rg” android:layout_width=”wrap_content” android:layout_height=”wrap_content” android:orientation=”horizontal android:layout_x=95px” android:layout_y=”90px TextView android:layout_width=wrap_content android:layou
9、t_height=”wrap_content android:layout_x=200px android:layout_y=145px” android:textSize=”20sp android:text=cm” /EditText android:id=+id/et_real android:layout_width=100px android:layout_height=”40px android:layout_x=100px android:layout_y=”230px android:inputType=”numberDecimal” /Button android:id=”+
10、id/compute android:layout_width=”wrap_content android:layout_height=”wrap_content android:layout_x=”100px android:layout_y=280px” android:textSize=20sp android:text=”string/compute / /AbsoluteLayout3。1。2源代码文件:MainActivity。java使用main。xml布局文件,为计算按钮(Button)注册事件监听,添加事件响应代码;实现未填身高提示:Toast.makeText(MainAc
11、tivity。this, R.string。tall_hint, Toast.LENGTH_SHORT).show();实现Activity之间跳转设置:intent.setClass(MainActivity。this, ResultActivity。class);实现Activity之间数据封装传输:bundle.putDouble(height”, height);bundle.putString(”sex, sex);bundle。putString(real, real);intent。putExtras(bundle);MainActivity.java完整代码如下:package
12、 com。halcyon;import android。app.Activity;import android.content.Intent;import android。os。Bundle;import android。view。View;import android.view.View。OnClickListener;import android.widget.Button;import android。widget.EditText;import android。widget。RadioButton;import android.widget。Toast;public class Mai
13、nActivity extends Activity implements OnClickListener private RadioButton rb1 = null; private RadioButton rb2 = null; private EditText et = null; private EditText et_real = null; private Button bt = null; public void onCreate(Bundle savedInstanceState) super。onCreate(savedInstanceState); setContentV
14、iew(R。layout.main); rb1 = (RadioButton)findViewById(R.id.rb_male); rb2 = (RadioButton)findViewById(R.id。rb_female); rb1。setChecked(true); /默认为男性选中 et = (EditText)findViewById(R.id。et_tall); et_real = (EditText)findViewById(R.id.et_real); bt = (Button)findViewById(R。id。compute); bt。setOnClickListener
15、(this); /注册点击事件监听 Override public void onClick(View v) / TODO Autogenerated method stub /*事件响应代码,获取性别、身高,判断是否输入了实际体重 * 新建Intent对象用于Activity之间跳转,及传输输入的数据 * */ if(et。getText().toString()。length()=0) /身高未填提示 Toast。makeText(MainActivity。this, R。string。tall_hint, Toast。LENGTH_SHORT)。show(); else double h
16、eight = Double.parseDouble(et。getText().toString()); String real = et_real.getText().toString(); String sex = ”; if(rb1.isChecked() sex = M; else sex = F; Intent intent = new Intent(); intent.setClass(MainActivity。this, ResultActivity。class); Bundle bundle = new Bundle(); /存放数据,以封装传输 bundle.putDoubl
17、e(height”, height); bundle。putString(”sex, sex); bundle。putString(real”, real); intent.putExtras(bundle); this.startActivity(intent); 3。2第二个Activity3。2.1布局文件:result.xml绝对布局,三个TextView,内容用紫色显示,提示标号用绿色显示,以达到较醒目的感觉。result.xml完整代码如下:?xml version=1。0” encoding=utf8?TextView android:id=+id/tv_1” android:l
18、ayout_width=wrap_content” android:layout_height=”wrap_content android:layout_x=20px” android:layout_y=100px android:textSize=”20sp” android:textColor=”#8855ff /3。2.2源代码文件:ResultActivity.java使用result.xml布局文件,获取intent,取得传入的数据信息,以男性:(身高cm80)70标准体重 女性:(身高cm70)60标准体重的标准来计算标准体重,方法private String getWeight(
19、double height, String sex)实现此功能;可根据用户是否输入了实际体重,来选择是否显示健康提示信息,方法private void healthHint(double weight)实现此功能;方法private String form(double d)实现数据格式化。ResultActivity。java完整代码如下:package com.halcyon;import java。text.NumberFormat;import android.app.Activity;import android。content。Intent;import android。os。Bu
20、ndle;import android.widget.TextView;public class ResultActivity extends Activity private TextView tv_1 = null; private TextView tv_2 = null; private TextView tv_3= null; private Intent intent = null; private Bundle bundle = null; private double height = 0; private String sex = ”; public void onCreat
21、e(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.result); tv_1 = (TextView)findViewById(R。id.tv_1); tv_2 = (TextView)findViewById(R。id。tv_2); tv_3 = (TextView)findViewById(R。id。tv_3); intent = this。getIntent(); bundle = intent。getExtras(); height = bundle.getD
22、ouble(height”); sex = bundle.getString(”sex”); tv_1。setText(this.getWeight(height,sex); /*男性:(身高cm80)70标准体重 * 女性:(身高cm70)60标准体重 * */ private String getWeight(double height, String sex) double weight = 0; String result = ”; if(sex。equals(M”)) weight = (height-80)*0.7; result = ”这位先生,n你的标准体重为”+form(we
23、ight)+”公斤。n; else weight = (height70)0。6; result = 这位女士,n妳的标准体重为+form(weight)+”公斤。n; healthHint(weight); return result; private void healthHint(double weight) /根据用户是否输入了实际体重来判断是否添加显示提示信息 如果输入了实际体重,按以下原则给用户以健康提示 标准体重正负10为正常体重 标准体重正负10 20为体重过重或过轻 * 标准体重正负20以上为肥胖或体重不足 * / String result = ”; String real
24、 = bundle。getString(”real”); if(real。equals() result = ; else double r = Double.parseDouble(real); double rate = (r-weight)/weight; if(rate0。2) /过胖 result = this.getString(R.string.very_fat); else if(rate=0。1&rate=0。2) /胖 result = this。getString(R.string.fat); else if(rate-0。1&rate0。1) /正常 result = this.getString(R。string。normal); else if(rate=-0。2rate=0.1) /瘦 result = this.getString(R.string。thin); else if(rate-0。2) /过瘦 result = this.getString(R。string.very_thin);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1