华南理工大学《Android程序设计》实验报告

合集下载

安卓实训报告

安卓实训报告

安卓实训报告本文主要介绍本人参加的安卓实训的情况和所学习的内容,包括课程设置、实训内容、实验环境以及感受和体会。

一、课程设置本次安卓实训是由学校计算机学院组织的,共计5个工作日。

实训内容主要包括Android应用开发的基础知识、Android开发工具的使用和实际应用开发。

二、实训内容1. 安卓应用开发的基础知识在实训中,我们先学习了Android系统的架构和Android应用开发的基础知识,包括四大组件、应用程序基础构建块、SharedPreferences共享偏好、Android的数据存储和访问方式以及常用控件等。

这些基础知识对于后续的应用开发非常重要。

2. Android开发工具的使用接下来,我们学习了Android开发工具的使用。

首先是安装和配置IDEA开发工具。

然后是熟悉Android Studio的界面和操作方法,包括创建项目、编写代码、管理SDK、调试等。

通过这些实操,我对Android开发工具的使用有了更深入的了解和掌握。

3. 实际应用开发最后,我们实现了一个简单的安卓应用程序,包括登录、注册和查询功能。

在这个过程中,我学习了如何使用SQLite数据库进行数据存储和查询,如何通过接口进行网络请求和反馈,如何使用JSON解析数据等。

三、实验环境实训的实验环境是一台安装了Windows 10 64位操作系统的电脑,通过Android Studio配置好了相关的开发环境和SDK,以及模拟器和真机调试。

在实践中,我们对模拟器和真机调试都进行了测试,深入了解了它们的特点和优缺点。

四、感受和体会通过这次实训,我对安卓开发有了更详细的认识,掌握了应用开发的基础知识和技能。

通过实践,我不仅能够熟练使用Android Studio进行开发,还能够自己开发一个简单的安卓应用程序。

这个实训对我的职业生涯和学习都具有重要的意义。

此外,我还深刻认识到,程序开发是一个需要不断学习和实践的过程。

只有坚持学习并不断实践,才能在这个领域中不断进步和提升自己的技能。

Android实验报告—UI设计(定稿)

Android实验报告—UI设计(定稿)

Android实验报告—UI设计(定稿)第一篇:Android实验报告—UI设计(定稿)Android UI设计实验目的:本实验的目的是使学生深入了解Android程序框架结构、了解和掌握Android界面设计和界面编程。

通过程序设计,掌握常用界面控件、菜单、以及界面事件的响应。

实验要求:设计程序实现一个电子菜单,应具有显示菜单功能和选菜功能。

通过选择,将选中的菜单选项在界面做显示,如下图:[实现提示]1、建立Android工程,其中工程名称:MenuSelect579 应用名称:MenuSelect579 包名称:.bistu.dj1001.MenuSelect579 Activity名称:MenuSelect5792、工程建立完毕后,进行相应界面设计,再编写Java文件程序源码package .bistu.dj1001.MenuSelect579;import android.app.Activity;import android.os.Bundle;import android.view.ContextMenu;importandroid.view.ContextMenu.ContextMenuInfo;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.TextView;public class MenuSelect579 extends Activity {/** Called when the activity is first created.*/TextView LabelView = null;public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.main);LabelView=(TextView)findViewById(bel);registerForContextMenu(La belView);}final static int CONTEXT_MENU_1 = Menu.FIRST;final static int CONTEXT_MENU_2 = Menu.FIRST+1;final static int CONTEXT_MENU_3 = Menu.FIRST+2;@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo){menu.setHeaderTitle(“今日菜单”);menu.add(0, CONTEXT_MENU_1, 0,“宫保鸡丁”);menu.add(0, CONTEXT_MENU_2, 1,“干煸豆角”);menu.add(0, CONTEXT_MENU_3, 2,“鱼香肉丝”);}@Override}public boolean onContextItemSelected(MenuItem item){} switch(item.getItemId()){case CONTEXT_MENU_1: LabelView.setText(“宫保鸡丁”);return true;case CONTEXT_MENU_2: LabelView.setText(“干煸豆角”);return true;case CONTEXT_MENU_3: LabelView.setText(“鱼香肉丝”);return true;} return false;程序运行结果:实验心得体会:(可选)通过本次实验熟悉了android的界面设计简单方法和界面编程,锻炼了实际动手能力,熟悉了Android程序框架结构、Android界面设通过程序设计,掌握了常用界面控件、菜单、以及界面事件的响应。

《Android应用程序设计》实验报告 (2)

《Android应用程序设计》实验报告 (2)

实验1 搭建开发环境与第1个Android程序【实验目的】1.熟悉Android开发环境的搭建2.掌握用Eclipse开发Android程序的流程【实验内容】一、搭建Android开发环境按照下面的步骤,完成Android环境的搭建。

1.1 JDK的安装及配置1.根据电脑的系统位数安装软件包里的JDK,安装目录设置为d:\jdk1.x。

(d为你的安装盘,可以设为任意盘;x为你安装的jdk版本)2. WIN7系统环境变量设置(1)环境变量设置一(2)环境变量设置二(3)环境变量设置三(4)环境变量设置四1)创建新的环境变量。

名:JA V A_HOME,值:x:\jdk1.72)修改系统变量Path,在path变量值前添加这段:%JA V A_HOME%\bin;3)修改系统变量classpath,值为:.;%JA V A_HOME%\lib\dt.jar;%JA V A_HOME%\lib\tools.jar;(5)环境变量设置五1)测试开发环境。

在开始->搜索程序和文件里输入cmd.exe,打开cmd。

输入cd c:\ 命令进入c盘根目录。

2)在c盘根目录下使用记事本编写源文件,并存为java文件。

public class MyApp {public static void main (String[] args) {System.out.println(“我能学好Java语言!”);} }3)使用javac命令编译程序,在cmd命令行输入:javac MyApp.java生成class类型文件。

4)使用java命令运行程序,在cmd命令行输入:java MyApp如果在命令行显示结果“我能学好Java语言!”,则JDK环境配置成功。

1.2 Android SDK的安装及配置1. 解压adt-bundle-windows-x86_64-20131030.zip文件,里面的SDK是免安装版。

android课程实训报告

android课程实训报告

实训报告标题:Android应用开发课程实训一、实训目标本次实训的目标是掌握Android应用开发的基本知识和技能,包括Android Studio的使用、界面设计、基本组件的使用、数据存储和网络通信等。

通过实训,我希望能够独立完成一个简单的Android应用,并加深对Android开发的理解。

二、实训内容在本次实训中,我们主要学习了以下内容:1. Android Studio的安装和使用:包括新建项目、界面设计、代码编写和调试等。

2. 界面设计:学习了如何使用XML布局文件和Android Studio的拖放功能进行界面设计。

3. 基本组件的使用:学习了如何使用Button、TextView、EditText等基本组件,以及如何处理用户输入和事件响应。

4. 数据存储:学习了如何使用SharedPreferences、SQLite数据库和Room数据库进行数据存储。

5. 网络通信:学习了如何使用Retrofit进行网络通信,包括JSON数据的解析和API的调用等。

三、实训过程在实训过程中,我们首先学习了Android Studio的使用,然后开始进行界面设计。

在界面设计的过程中,我们遇到了很多问题,例如如何合理地布局组件、如何处理不同屏幕尺寸和分辨率的问题等。

通过不断地尝试和查阅资料,我们逐渐掌握了这些技能。

接下来,我们学习了基本组件的使用,包括Button、TextView、EditText等。

通过编写代码和处理用户输入,我们深入理解了这些组件的作用和使用方法。

在数据存储部分,我们学习了SharedPreferences、SQLite数据库和Room数据库的使用。

通过编写代码和实现数据存储功能,我们掌握了这些数据存储方式的优缺点和使用场景。

最后,我们学习了网络通信,主要是使用Retrofit进行API的调用。

通过编写代码和解析JSON数据,我们掌握了Retrofit的使用方法和网络通信的基本流程。

安卓程序实验报告(3篇)

安卓程序实验报告(3篇)

第1篇一、实验目的1. 熟悉安卓开发环境及工具的使用。

2. 掌握安卓应用程序的基本开发流程。

3. 学习安卓界面设计、布局、事件处理等基本技能。

4. 提高编程能力及团队协作能力。

二、实验环境1. 操作系统:Windows 102. 开发工具:Android Studio3.53. 编程语言:Java4. 虚拟机:Android 9.0 (Pie)三、实验内容1. 创建安卓项目2. 设计界面3. 编写功能代码4. 测试与调试四、实验步骤1. 创建安卓项目(1)打开Android Studio,点击“Start a new Android Studio project”;(2)选择“Empty Activity”模板,点击“Next”;(3)输入项目名称、保存位置等信息,点击“Finish”;(4)在项目目录中,找到MainActivity.java文件,修改其中的代码,以实现特定功能。

2. 设计界面(1)打开res/layout/activity_main.xml文件;(2)使用布局编辑器设计界面,添加控件(如Button、EditText等);(3)设置控件的属性(如文本、颜色、大小等)。

3. 编写功能代码(1)在MainActivity.java文件中,编写代码实现功能;(2)例如,编写按钮点击事件,实现数据计算、页面跳转等操作。

4. 测试与调试(1)在Android Studio中,点击“Run”按钮,启动模拟器或连接真机进行测试;(2)观察程序运行效果,如有问题,进行调试;(3)根据需要,修改代码,直至程序正常运行。

五、实验结果与分析1. 实验结果本次实验成功创建了一个安卓应用程序,实现了简单的功能,如按钮点击事件、页面跳转等。

2. 实验分析(1)在创建安卓项目时,熟悉了Android Studio的使用,掌握了项目结构及文件管理方法;(2)在设计界面时,学会了使用布局编辑器,掌握了常用控件的属性设置;(3)在编写功能代码时,学习了Java编程语言的基本语法,掌握了事件处理及页面跳转等操作;(4)在测试与调试过程中,提高了问题定位及解决能力。

安卓实训报告

安卓实训报告

安卓实训报告本文将介绍安卓实训报告的相关内容,以及针对该实训所设计的三个案例。

安卓实训是目前普遍开设的计算机专业培训课程,其主要目的是帮助学生系统地掌握安卓应用开发的基本技能。

在实训过程中,学生需要通过设计和开发具有特定功能的应用程序来锻炼自己的编程水平。

为了满足安卓实训的学习要求,我们设计了以下三个案例:案例一:基于位置的应用程序该应用程序可以帮助用户掌握当前所处位置的具体信息,包括经度、纬度、地址等。

同时,它还可以提供周边景点及服务的信息,例如餐厅、加油站等。

实现该应用程序的主要技术包括:使用GPS获取用户位置信息、使用百度地图API获取地图数据、使用第三方API获取周边服务信息等。

案例二:音乐播放器应用程序该应用程序可以帮助用户播放本地音乐,支持基本操作,例如暂停、继续、下一曲等。

此外,该应用程序还可以提供在线音乐平台的推荐功能,为用户提供高质量的音乐体验。

实现该应用程序的主要技术包括:使用MediaPlayer控制音乐播放、使用Content Provider获取本地音乐列表、使用网络API获取在线推荐列表等。

案例三:社交媒体应用程序该应用程序可以帮助用户与朋友圈、群组等社交媒体社区进行互动,并提供一系列社交功能,例如发送消息、发表动态、点赞等。

实现该应用程序的主要技术包括:使用HTTP协议与服务器通信、使用Json解析接口返回数据、使用SQLite持久化存储用户数据等。

通过以上三个案例的设计与实现,学生可以系统地掌握安卓应用开发中的一些重要技术和方法,提高自己的编程水平,在未来的职业发展中具备更强的竞争力。

除了以上三个案例,安卓实训课程还可以涵盖更多的实际应用场景,例如电子商务应用、移动办公应用、游戏开发等。

通过这些实际应用场景的实践,学生们可以更加深入地探究安卓应用的实际应用价值和技术特点,进一步提高自己的能力和素质。

在安卓实训课程中,不仅要注重理论知识的学习,更要注重实践能力的培养。

安卓实验报告总结万能

安卓实验报告总结万能《安卓实验报告总结》一、引言:安卓实验报告总结起源于对安卓应用开发的兴趣,旨在通过实验来学习和掌握安卓开发的基本知识和技能。

本次实验总共进行了X个实验,包括XXX。

通过这些实验,我深入了解了安卓系统的架构和工作原理,学会了使用安卓开发工具和编程语言。

在实验过程中,我遇到了一些困难和挑战,但通过不断努力和思考,我最终能够解决问题并完成实验。

二、实验内容和方法:在本次实验中,我学习了安卓系统的基本知识,并通过实际操作来巩固和应用这些知识。

实验内容包括XXX。

在实验过程中,我先阅读了实验指导书,了解了实验的目的和要求。

然后,我按照指导书的步骤进行实验,使用安卓开发工具进行编程,并在模拟器或真机上运行和测试应用程序。

在实验中,我还遇到了一些问题和困难,但我通过查阅资料和与同学交流来解决这些问题。

三、实验结果和分析:在本次实验中,我成功完成了所有的实验,并实现了预期的功能。

我的应用程序XXX。

通过实验,我学会了如何使用安卓开发工具和编程语言,如何设计和实现安卓应用程序。

我还通过实验来学习了安卓系统的各个组件和功能,包括XXX。

四、实验心得和体会:通过这次实验,我深刻体会到了安卓开发的乐趣和挑战。

在实验过程中,我遇到了一些问题和困难,但通过不断努力和思考,我最终能够解决问题并完成实验。

这次实验让我更加了解了安卓系统的架构和工作原理,提高了我的编程能力和解决问题的能力。

在未来,我将继续深入学习和研究安卓开发,不断提高自己的技能和能力。

五、实验总结:通过这次实验,我得到了很多宝贵的经验和收获。

首先,我学会了如何使用安卓开发工具和编程语言,这为我以后的安卓开发奠定了坚实的基础。

其次,我通过实际操作来认识和了解安卓系统的各个组件和功能,这让我更加深入地了解了安卓系统的工作原理。

最后,我通过解决实验中遇到的问题和困难,提高了自己的问题解决能力和自学能力。

六、改进意见:在实验中,我发现XXX需要改进。

Android实训报告【范本模板】

Android实训报告学院:******班级:******学号:******姓名:******目录一、实训背景及目的要求 (3)1。

1背景简介 (3)1。

2实训目的及要求 (3)二、设计思路 (3)2。

1设计题目 (3)2.2功能分析 (4)2。

3模块划分 (4)三、设计实现及代码分析 (4)3。

1第一个Activity (4)3.1.1布局文件:main.xml: (4)3。

1。

2源代码文件:MainActivity.java (7)3.2第二个Activity (9)3。

2。

1布局文件:result。

xml (9)3。

2。

2源代码文件:ResultActivity.java (10)3。

3字符串资源文件:strings。

xml (12)3。

4程序清单文件:AndroidManifest.xml (13)四、程序功能测试及截图 (14)4.1工程项目目录 (14)4。

2程序运行界面: (14)4.3未填身高提示: (15)4。

4计算示例: (15)五、课程设计(实训)总结 (16)一、实训背景及目的要求1.1背景简介Android(读音:[’ændrɔid])是一种以Linux为基础的开放源码操作系统,主要使用于便携设备,目前尚未有统一中文名称,中国大陆地区较多人使用安卓或安致。

Android操作系统最初由Andy Rubin创办[5],最初只支持手机。

2005年由Google收购注资,并拉拢多家制造商组成开放手机联盟(Open Handset Alliance)开发改良,逐渐扩展到到平板电脑及其他领域上[6]。

2010年末数据显示,仅正式推出两年的操作系统的Android已经超越称霸十年的诺基亚Symbian系统,跃居全球最受欢迎的智慧手机平台。

采用Android系统手机厂商包括HTC、Samsung、Motorola、Lenovo、LG、Sony Ericsson等.1.2实训目的及要求Android以Linux为核心的Android行动平台,使用Java作为编程语言。

安卓实验报告报告

《Android网络程序设计》课程期末作品设计报告学号:130705222姓名:廖梓茗班级:13信息 2 班学院:电子信息学院2016年6 月1 主要界面截图分组界面全部赛程界面球队赛程界面“我的”界面--未登录“我的”界面--已登录登陆界面修改密码界面2 请结合本项目的开发,回答以下问题2.1 如何在ViewPager中放入多个Fragment?如何为每个Fragment设置标签?介绍一下管理ViewPager的适配器。

给viewpager addOnPageChangerListener 同时绑定fragment数据源2.2 适配器是什么?以本项目为例介绍一个列表适配器的实现?Adapter是控件与数据之间的桥梁,控制控件什么时候如何显示数据项目中的listview的adapter全继承BaseAdapter,自由度高。

其中adapter 的getView方法主要控制listview的每个item显示什么视图view2.3 如何访问网络接口?如何获得网络接口返回的数据?以本项目为例介绍一个网络接口的访问。

本项目访问网络,主要使用HttpClient,调用AsyncHttpClient的get或post发送一个请求,在回调接口中处理返回数据。

例如获取分组数据接口,先获取AsyncHttpClient对象AsyncHttpClient client = new AsyncHttpClent();再调用client对象的post或是get方法Client.get(url,new TextHttpResponseHandler());在回调函数onSuccess中处理返回信息2.4 如何解析json数据?以本项目为例介绍一个接口返回的json数据的解析过程。

json数据解析,主要使用Gson或是FastJson解析FastJson: JSON.priseObjest()或是JSON.priseArray()直接将json映射成list或是object3 请回答以下问题3.1 当启动一个Activity并且新的Activity执行完后需要返回到启动它的Activity,应使用什么方法?其有哪些参数,分别表示什么?在新Activity中如何将数据返回启动它的Activity?原Activity如何用什么方法获取返回的数据?其有哪些参数,分别表示什么?startActivityForResult(intent, requestCode);setResult(intent);通过onActivityResult()函数中的Intent参数中获取传回的数据3.2 Activity和Fragment的生命周期状态各有哪些?状态之间如何变换?状态变换时会执行哪些方法?3.3 Fragment和Activity相比,优势有哪些?fragment相比activity更加灵活3.4 如何用WebView显示html页面?如何将java对象注入到html页面中的javascript对象,实现应用程序与html页面的交互?webView.loadUrl(本地html地址或是网络地址)。

Android实验一实验报告

姓名:丁军峰AndrOid实验报告一班级:信科12-3学号:08123448一、实验内容编写一个Android 应用程序,实现对自己物品的管理,功能包括添加、删除和查询等二、实验目的了解an droid开发流程,掌握SQLite数据库和LiStVieW控件的使用三、需求分析使用SQLite数据库,使用LiStVieW控件显示物品四、实验过程1. 创建程序,设计用户交互界面<? xml verSion ="1.0" encoding ="utf-8" ?><LinearLayout xmlnS:android ="/apk/reS/android" android:layout_Width ="match_parent"android:layout_heigh tandroid:orientation="match_parent" ="vertical" ><LinearLayout android:layout_Width android:layout_height android:layout_Weight android:orientation<TextVieW android:layout_Width android:layout_height android:text ="match_parent"="0dp"="1" ="vertical" >="Wrap_content"="Wrap_content"<LinearLayout android:layout_Width android:layout_height android:orientation<TextVieW android:layout_Width ="match_parent"="Wrap_content" ="horizontal" >="Wrap_content"/>=" 物品清单"android:layout_height ="wrap_content"android:text =" 物品名称 " /> <EditTextandroid:id ="@+id/id_et_stuffname"android:layout_widthandroid:layout_heightandroid:inputType </LinearLayout ><LinearLayoutandroid:layout_widthandroid:layout_heightandroid:orientation<TextViewandroid:layout_widthandroid:layout_height ="match_parent" ="wrap_content" ="text" />="match_parent" ="wrap_content" ="horizontal" > ="wrap_content" ="wrap_content"android:text =" 物品个数 " /> <EditText android:id android:layout_widthandroid:layout_heightandroid:inputType </LinearLayout ><LinearLayoutandroid:layout_widthandroid:layout_heightandroid:orientation<TextView android:layout_widthandroid:layout_height android:text <EditText ="match_parent" ="wrap_content" ="horizontal" > ="wrap_content" ="wrap_content"android:id ="@+id/id_et_stuffprize"android:layout_width android:layout_heightandroid:inputType </LinearLayout > </LinearLayout >="match_parent" ="wrap_content" ="text" /> <FrameLayoutandroid:layout_width<LinearLayoutandroid:layout_height="wrap_content" =" 物品价格" />="@+id/id_et_stuffamount"="match_parent"="wrap_content"="text" />="match_parent"android:layout_widthandroid:layout_heightandroid:orientation="match_parent" ="match_parent" ="horizontal" ><Buttonandroid:id ="@+id/id_bt_add"android:layout_widthandroid:layout_heightandroid:layout_weightandroid:text =" 添加记录 "android:layout_marginLeft android:layout_marginRight android:layout_marginTop="@drawable/recordbutton"="0dp" /> <Buttonandroid:id ="@+id/id_bt_all" android:layout_width="0dp" android:layout_height ="wrap_content"android:layout_weight ="1"android:text =" 显示全部 " android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop ="6dp" android:layout_marginBottom= "7dp" android:gravity= "center" android:padding = "5dp"android:textColor ="#727272"="@drawable/recordbutton" ="0dp" /> </ LinearLayout > <Viewandroid:layout_widthandroid:layout_height android:background</ FrameLayout >="match_parent"="1dp"="#eee" />android:layout_marginBottom android:gravity android:padding = "center" ="5dp"android:textColor ="#727272"="7dp" ="0dp" ="wrap_content" ="1" ="10dp"="10dp"="6dp"android:background android:minHeightandroid:backgroundandroid:minHeightv/ LinearLayout2•创建 LiStVieW Item 布局v?XmlVerSiOn ="1.0" en cod ing ="utf-8" ?>VLin earLayout xmln s:a ndroid ="http://SChemas.a /apk/res/android"an droid:layout_Width an droid:layout_height an droid:orie ntatio n an droid:backgrou nd VImageVieW="match_Pare nt"="match_Parent"="horiz on tal"="#ffffffff" >an droid:id ="@+id/id_ ig_n ame"="0dp"="wrap_c Ontent"an droid:layout_Weight ="1"an droid:SrC ="@drawable/ic_me nu_paste_holo 」i ght"VTeXtVieWan droid:id ="@+id/id_tv_ name"an droid:layout_Width ="0dp"an droid:layout_height ="wrap_c Ontent"an droid:layout_Weight ="1"an droid:textColor ="#000000"android:textSize ="18sp" />VTeXtVieW an droid:id ="@+id/id_tv_amou nt"an droid:layout_Width ="0dp"an droid:layout_height ="wrap_c Ontent"an droid:layout_Weight ="1"an droid:textColor ="#000000"android:textSize ="18sp" />VTeXtVieWan droid:id ="@+id/id_tv_price"an droid:layout_Width ="0dp"an droid:layout_height ="wrap_c Ontent"an droid:layout_Weight ="1"an droid:textColor ="#000000"android:textSize ="18sp" />VImageBUtt onan droid:id ="@+id/id 」b_delete"an droid:layout_Width ="0dp"an droid:layout_height ="wrap_c Ontent" an droid:layout_Width an droid:layout_height />an droid:layout_Weight ="1" android:src = "@drawable/ic_menu_delete" android:background ="#ffffffff" android:onClick = "deleteItem" /> </ LinearLayout >3. 创建数据库package com.LIQI.Stuff;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;public class MySQLiteOpenHelper extends SQLiteOpenHelper {public MySQLiteOpenHelper(Context context) { super(context, "LIQI.db", null, 1); // TODO Auto-generated constructor stub }@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("create table LIQI(_id integer primary key autoincrement,stuff,amount,price)");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub}}4. 创建account 类package com.LIQI.Stuff;publicclass Stuff {private String stuffName ; privateint StuffAmount ; privatefloat StuffPrice ; public String getStuffName() {return stuffName ;}publicvoid setStuffName(String stuffName) {this . stuffName = stuffName;}publicint getStuffAmount() {return StuffAmount ;}publicvoid setStuffAmount( int stuffAmount) { StuffAmount = stuffAmount;}publicfloat getStuffPrice() {return StuffPrice ;}publicvoid setStuffPrice( float stuffPrice) { StuffPrice = stuffPrice;}}5. 创建数据操作逻辑package com.LIQI.Stuff;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageButton;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class StuffList extends Activity{ private ListView lv;private SQLiteDatabase mDataBase;private List<Stuff>stuffInfos;private MySQLiteOpenHelper mHelper; @Overrideprotected void onCreate(Bundle savedInstanceState) {setContentView(yout.show_all);mHelper=new MySQLiteOpenHelper(this);lv=(ListView) findViewById(R.id.id_lv);all();super.onCreate(savedInstanceState);}public voidall(){ mDataBase=mHelper.getWritableDatabase();Cursor cursor=mDataBase.query("LIQI", null, null, null, null, null, null); stuffInfos=new ArrayList<Stuff>(); while(cursor.moveToNext()){Stuff stuff=new Stuff(); stuff.setStuffName(cursor.getString(1));stuff.setStuffAmount(cursor.getInt(2)); stuff.setStuffPrice(cursor.getFloat(3));stuffInfos.add(stuff);}cursor.close();mDataBase.close();lv.setAdapter( new Myadapter());}class Myadapter extends BaseAdapter{@Overridepublic int getCount() {return stuffInfos.size();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn null;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}@Overridepublic View getView(final int position, View view , ViewGroup parent) {view =View.inflate(StuffList.this, yout.stuff_item, null);TextView tv_name=(TextView) view .findViewById(R.id.id_tv_name);TextView tv_amount=(TextView)view . findViewById(R.id.id_tv_amount); TextViewtv_price=(TextView) view .findViewById(R.id.id_tv_price); ImageButtoniButton=(ImageButton) view.findViewById(R.id.id_ib_delete);tv_name.setText(stuffInfos.get(position).getStuffName()); tv_amount.setText(" 数量(个)"+stuffInfos.get(position).getStuffAmount()); tv_price.setText("单价(元)"+stufflnfos.get(position).getStuffPrice());iButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {mDataBase=mHelper.getWritableDatabase();mDataBase.delete("LlQl","stuff=?", newString []{stufflnfos.get(position).getStuffName()});mDataBase.close();stufflnfos.remove(position); Myadapter.this.notifyDataSetChanged();}});return view;}}}6. 编写界面交互代码package com.LlQl.Stuff;import android.app.Activity;import android.content.ContentValues;import android.content.lntent;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener { private MySQLiteOpenHelper mHelper;private SQLiteDatabase mDataBase;private Button bt_add,bt_all;private EditText et_stuffName,et_stuffAmount,et_stuffPrice;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(yout.add_data);mHelper=new MySQLiteOpenHelper(this);initView();initAction();}public void initView(){et_stuffName=(EditText) findViewById(R.id.id_et_stuffname);et_stuffAmount=(EditText) findViewById(R.id.id_et_stuffamount);et_stuffPrice=(EditText) findViewById(R.id.id_et_stuffprize);bt_add=(Button) findViewById(R.id.id_bt_add);bt_all=(Button) findViewById(R.id.id_bt_all);}public void initAction(){bt_add.setOnClickListener(this);bt_all.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.id_bt_add:add();break;case R.id.id_bt_all:Intent intent=new Intent(this,StuffList.class); startActivity(intent);break;}PUbIiC Void add(){Str ing StUffName=et_stuffName.getText().toStr in g().trim();int StUffAmOU nt=l nteger.parsel nt(et_stuffAmou nt.getText().toStr in g().trim()); floatStUffPriCe=Float.parseFloat(et_StUffPriCe.getText().toStri ng().trim()); StUff StUff= newStUff();StufisetStuffName(StuffName);stuff.setStuffAmou nt(stuffAmou nt);StufisetstuffPrice(StuffPrice); mDataBase=mHelper.getWritableDatabase();COnten tValues COnten tValues=new Con te ntValues();contentValues.put("stuff", stuff.getStuffName());COnten tValues.put("amou nt", stuff.getStuffAmou nt());contentValues.put("price", stuff.getStuffPrice());long n Umber=mDataBase.i nsert("LIQI", n ull,c onten tValues);if(n Umber==-1){Toast.makeText(this,"添加失败",1).show();}else {et_StUffAmOU nt.setText("");et_StUffName.setText("");et_StUffPriCe.setText("");Toast.makeText(this,"添加成功,物品条数"+n Umber,1).show();}mDataBase.close();}}7.Manifest<?xml VerSiOn ="1.0" encoding ="utf-8" ?><ma ni fest xmln s:a ndroid ="http://SChemas.a /apk/res/a ndroid"PaCkage ="com.LIQI.Stuff'an droid:VerSiO nCode ="1"an droid:VerSi onN ame ="1.0" ><uses-sdkan droid: min SdkVerS ion ="8"android:targetSdkVersion ="17" /><applicati onan droid:allowBackup ="true"an droid:ic On ="@drawable/ic_lau ncher" an droid:label ="@Stri ng/app_ name" ><activity android:n ame an droid:label <i nten t-filter =".MainActivity" ="@Stri ng/app_n ame"><acti on an droid:n ame ="a ndroid.i nten t.actio n.MAIN"/><category an droid:n ame</ intent-filter > ="a ndroid.i ntenUNCHER"/></ activity ><activity an droid:n ame ="com.LIQI.Stuff.StuffList" ></ activity</ application > </ manifest > 五、实验结果程序界面显示APP 6:42 BaSiC COntrOIS11We WefttffgddS Wefer Ii■(个)2 单价(π)4.0致■(个)23Iw 个)23Sl■(个)34单价(元)345.0 单Vt(元)3453.0*tα(π)23.0θθθθHaCdWare ButtonsΘ∙ΘΘDPAD not Cnabled in AVDHardware KeybOardUSe your PhySICaI keyboard to PrOVide input。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华南理工大学《Android程序设计》实验报告Android大作业报告
(Android小游戏)
实验报告
实验内容:
本小组的方向为实际应用开发。

我们的设计目标是开发一个界面不复杂,用户友好型,有创意,耐玩的手机游戏。

经过一段时间的思考以及实现后,我们小组开发出了一款简单的智力型小游戏,它可以测试玩家的大脑反应速度。

我们的游戏名称是——Mixed Color。

以下是游戏过程中的主要界面:
实验过程:
实验过程主要分为代码实现过程以及视频和PPT的制作过程。

视频制作过程:
我们的视频是自己原创的,为的是希望用视频让大家熟悉我们的游
戏之余还能为大家带来欢乐,因此我们选择了多组合作的方式,用故事情节去带动游戏应用的出现以及介绍,让观众耳目一新。

(视频见QQ邮箱附件,或百度分享:/s/1nt9JYsx)
代码实现过程:
代码实现过程主要分为两个部分,分别是UI的设计以及游戏的实现。

(一)关于UI的实现,我们首先在界面中设置四个主要按钮,分别是开始,排行榜,选项以及退出键,并适当地设置较为好看的背景图片,引起玩家的兴趣。

图1:主界面
MixedColorMenuActivity.java
Activity跳转部分:
主界面主要功能是根据用户选择从当前的Activity跳转到其他的Activity,首先再OnCreate里面通过玩家点击的是哪个按钮赋给R.id相应的值,再通过利用R.id的值确定onClick里面的Intent内容来跳转到相应的Activity。

(二)紧接着是选项的设置功能和游戏的实现过程,当按下选项键后,会看到如下的设置画面,分别能设置震动效果,背景音效以及介绍界面,以及一个textbox是输入玩家的名称:
图2:设置界面
Prefs.java
“开始游戏前显示提示信息”的CheckBox部分:
这个界面首先设置了三个CheckBox,根据用户个人选择其想要的功能,当某个CheckBox的值被设置为true时,调用其setOnCheckedChangeListener来实现功能。

玩家昵称输入,确定按钮:
在游戏前玩家可以输入昵称和不输入昵称,通过getText函数获取玩家的输入,当玩家输入超过20个字符时不成功,输入之后存储昵称然后在排行榜显示最高的成绩。

(三)而当按下开始键后,会出现相对应的玩法介绍界面:
图3:介绍界面
TipsActivity.java:
ContentView和startActivity部分:
这里主要时利用ContentView来显示yout.tips的说明部分,然后当onClick函数响应并开始游戏。

(四)游戏界面:
图4:游戏界面
游戏的随机生成实现过程:
GlobalRankingActivity.java的run部分来确定游戏的逻辑,确定哪个时候选择正确:
MixedColorView.java是载入view资源,并处理游戏结束后弹出选择面板并处理用户选择,以下为其主要的实现的一部分:
RecordUpdateService.java是主要处理游戏结束后记录的更新,以下为期主要的实现功能部分:
接下里主要介绍该游戏的主要玩法:
辨认出最上面格子里面字体的颜色,在下面的格子里面选择和字体颜色相符的文字描述. 比如最上面格子里面的字的颜色是黄色, 你就应该在下面选中包含“黄色"字的格子.
这就是对应的几个游戏界面,当你选择了正确的格子后才会通过到下一题,当全部做完三十题之后,你会得到一个平均成绩,用你的平均成绩去和别人对比,就能知道自己在识别颜色的能力水平了!
实验心得与体会:
通过一直以来的的学习以及实现,我们最后成功地制作出了Mixed-Color这一款小游戏,在此过程中我们也确实学到了很多的知识,提高了自己各方面的能力,我们小组一致认为这是一次不错的实践过程。

相关文档
最新文档