安卓小应用 时间定时器_第1页
安卓小应用 时间定时器_第2页
安卓小应用 时间定时器_第3页
安卓小应用 时间定时器_第4页
安卓小应用 时间定时器_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章第一章 安卓开发软件的安装安卓开发软件的安装 在做安卓开发之前 首先要安装安卓开发软件 1 由于安卓 app 的开发都是基于 Java 语言 所以要安装 JDk 这 里安装的是由 Oracle 公司 甲骨文公司 提供的 JDK u25 版 本 安装过程如下 1 我的电脑 属性 高级系统设置 环境变量 2 配置系统变量 a 新建 JAVA HOME 然后安装 按照提示一步步往下走就行 2 安装完 JDK 以后 就要安装 eclipse 安装好以后的界面 3 安装 SDK 这部这重要最耗时间 去安卓开发者网站 下载 sdk 安装包 然后配置变量环境 然后双击打开 sdk manager 勾选全部内容 进行安装更新 这步很关键 不更新会导致最后编 译不兼容 安装时间大概在 6 小时 4 安装 ADT 还是去安卓开发者网站下载 ADT 安装包 安装步骤 至此 安卓开发软件就全部安装好了 第二章第二章 建立建立 hello hello worldworld 1 打开 eclipse 选择 File New Android application project 新建一个 Android 工程 2 选择 window android virtual device manager 进行 Android 虚拟界面的设置 3 右击 first1 工程 选择 run as android application 进行 虚拟界面 此时 看到软件 first1 点开 这样 一个最简单的app就完成了 打开res layout main xml 看到 文件 这些都是由工程自己创建完成的 不需要做任何改动 第三章第三章 计时器计时器 TimeTracker TimeTracker 设计设计 首先了解 Android 应用程序的基本架构 src 该文件夹包含了应用程序的 Java 源代码 它遵循标准的 Java 包约定 res 此文件夹包含应用程序的所有资源 同时也是使用 xml 声 明布局的地方 即包含所有的布局文件 图片 主题和字符串 gen 该文件夹下的 R Java 文件是自动生成的 不用管该文件 夹下的任何东西 AndroidMainfest xml 包含了 Android 系统需要的应用程序的 基本信息 包括应用程序使用的活动 服务 权限等 Default properties 列出了 Android API 的构建目标 设计过程设计过程 1 建立一个 Android 工程 timetracker 2 然后打开 res values strings xml 编辑代码设计软件中可见 字符 Hello World TimeTrackerActivity TimeTracker 1 d 2 02d 3 02d 4 03d Finish Start Stop Task 1 d 3 进行页面布局 使用线性布局来摆放三个子视图 一个文本视 图表示时间 一个两个按钮的线性布局 以及展示之前所有时 刻列表视图 打开 res layout main xml 输入如下代码 4 timetracker 应用程序将需要为他的列表时刻视图自定义布局 显示列表 在 res layout time row xml 输入如下代码 5 把数据捆绑到列表 打开 src timelistadapter Java 往 listview 填充数据 package com example timetracter import android content Context import android text format DateUtils import android view LayoutInflater import android view View import android view ViewGroup import android widget ArrayAdapter import android widget TextView public class TimeListAdapter extends ArrayAdapter public TimeListAdapter Context context int textViewResourceId super context textViewResourceId Override public View getView int position View convertView ViewGroup parent View view convertView if view null view LayoutInflater from getContext inflate R layout time row null long time getItem position TextView name TextView view findViewById R id lap name String taskString getContext getResources getString R string task name name setText String format taskString position 1 TextView lapTime TextView view findViewById R id lap time lapTime setText DateUtils formatElapsedTime time return view 6 声明活动 所有的活动都必须在应用程序的清单中声明 否则在应用第一 次运行时会出现异常现象 Timetracker 应用程序将会重写 oncreate 程序如 下 package com example timetracter import android app Activity import android os Bundle import android os Handler import android os Message import android os StrictMode import android text format DateUtils import android view View import android view View OnClickListener import android widget Button import android widget ListView import android widget TextView public class TimeTrackerActivity extends Activity implements OnClickListener private TimeListAdapter mTimeListAdapter null private long mStart 0 private long mTime 0 Called when the activity is first created Override public void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView R layout main Initialize the Timer TextView counter TextView findViewById R id counter counter setText DateUtils formatElapsedTime 0 Button startButton Button findViewById R id start stop startButton setOnClickListener this Button stopButton Button findViewById R id reset stopButton setOnClickListener this if mTimeListAdapter null mTimeListAdapter new TimeListAdapter this 0 ListView list ListView findViewById R id time list list setAdapter mTimeListAdapter if Util useStrictMode this StrictMode setThreadPolicy new StrictMode ThreadPolicy Builder detectAll penaltyLog penaltyDialog build StrictMode setThreadPolicy new StrictMode ThreadPolicy Builder detectAll penaltyLog penaltyDialog build Override protected void onDestroy mHandler removeMessages 0 super onDestroy Override public void onClick View v TextView ssButton TextView findViewById R id start stop if v getId R id start stop if isTimerRunning startTimer ssButton setText R string stop else stopTimer ssButton setText R string start else if v getId R id reset resetTimer TextView counter TextView findViewById R id counter counter setText DateUtils formatElapsedTime 0 ssButton setText R string start private void startTimer mStart System currentTimeMillis mHandler removeMessages 0 mHandler sendEmptyMessage 0 private void stopTimer mHandler removeMessages 0 private boolean isTimerRunning return mHandler hasMessages 0 private void resetTimer stopTimer if mTimeListAdapter null mTimeListAdapter add mTime 1000 mTime 0 private Handler mHandler new Handler public void handleMessage Message msg long current System currentTimeMillis mTime current mStart mStart current TextView counter TextView TimeTrackerActivity this findViewById R id counter counter setText DateUtils formatElapsedTime mTime 1000 mHandler sendEmptyMessageDelayed 0 250 7 为了防止出现应用程序可能会遇到违反政策的对话框或者甚至会经历应用 崩溃 这时可以只在调试模式时启用 strictmode 要检测一个应用程序是否运 行在调试模式 检测 ApplicationInfo 标志就行 在 src Util Java 下添加代 码 代码如下 package com example timetracter import android content Context import android content pm ApplicationInfo import android content pm PackageManager import android content pm PackageManager NameNotFoundException import android os Build public class Util public static boolean isDebugMode Context context PackageManager pm context getPackageManager try ApplicationInfo info pm getApplicationInfo context getPackageName 0 return info flags catch NameNotFoundException e return true public static boolean useStrictMode Context context return isDebugMode context 8 运行 timetracker 工程 在所有应用程序中找到 timetracker 应用 点开运行 运行正常 期间没有出现软件崩溃的情况 总结总结 通过大概一个星期的学习与代码编写 终于将 timetracker 应 用程序编出来了 也将 apk 下载到自己的手机上进行了实际的应用 这么多天的努力总算没有白费 在做 Android 开发的过程中也遇到了很多的问题 主要有 首先是软件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论