ImageVerifierCode 换一换
格式:DOC , 页数:27 ,大小:1.58MB ,
资源ID:9200003      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9200003.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(安卓小应用-时间定时器.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

安卓小应用-时间定时器.doc

1、第一章 安卓开发软件的安装 在做安卓开发之前,首先要安装安卓开发软件。 (1) 由于安卓app的开发都是基于Java语言,所以要安装JDk,这里安装的是由Oracle公司(甲骨文公司)提供的JDK-u25版本,安装过程如下: 1.我的电脑-->属性-->高级系统设置-->环境变量. 2.配置系统变量: a.新建 JAVA_HOME 然后安装: 按照提示一步步往下走就行。 (2) 安装完JDK以后,就要安装eclipse: 安装好以后的界面: (3) 安装SDK,这部这重要最耗时间; 去安卓开发者网站 下载sdk安装包: 然后配置变量环境:

2、 然后双击打开sdk manager 勾选全部内容,进行安装更新,这步很关键,不更新会导致最后编译不兼容,安装时间大概在6小时。 (4) 安装ADT: 还是去安卓开发者网站下载ADT安装包 安装步骤: 至此,安卓开发软件就全部安装好了! 第二章 建立“hello world!” (1) 打开eclipse,选择File>New>Android application project,新建一个Android工程: (2)选择window>android virtual device manage

3、r,进行Android虚拟界面的设置: (3)右击first1工程,选择run as>android application,进行虚拟界面 此时,看到软件first1,点开 这样,一个最简单的app就完成了。打开res>layout>main.xml,看到文件

4、m="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" >

5、"wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> 这些都是由工程自己创建完成的,不需要做任何改动。 第三章 计时器“TimeTracker”设计 首先了解Android应用程序的基本架构 src:该文件夹包含了应用程序的Java源代码。它遵循标准的Java包约定。 res:此文件夹包含应用程序的所有资源,同时也是使用x

6、ml声明布局的地方,即包含所有的布局文件、图片、主题和字符串。 gen:该文件夹下的R.Java文件是自动生成的,不用管该文件夹下的任何东西。 AndroidMainfest.xml:包含了Android系统需要的应用程序的基本信息,包括应用程序使用的活动、服务、权限等。 Default.properties:列出了Android API的构建目标。 设计过程 (1) 建立一个Android 工程“timetracker” (2) 然后打开res\values\strings.xml,编辑代码设计软件中可见字符

7、f-8"?> Hello World, TimeTrackerActivity! TimeTracker %1$d:%2$02d:%3$02d:%4$03d Finish Start

8、"stop">Stop Task %1$d (3) 进行页面布局,使用线性布局来摆放三个子视图:一个文本视图表示时间,一个两个按钮的线性布局,以及展示之前所有时刻列表视图,打开res\layout\main.xml,输入如下代码:

9、d:layout_height="fill_parent" android:orientation="vertical" >

13、 android:layout_height="0dp" android:layout_weight="1" > (4) timetracker应用程序将需要为他的列表时刻视图自定义布局,显示列表。在res\layout\time_row.xml输入如下代码:

14、ndroid=" android:id="@+id/time_row" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:paddingLeft="10dp" android:paddingRight="10dp" android:paddingBottom="20dp" android:paddingTop="20dp">

15、 android:id="@+id/lap_name" android:layout_height="wrap_content" android:text="Lap 1" android:layout_weight="1" android:layout_width="0dp" />

16、"0dp" android:gravity="right" /> (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.v

17、iew.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; public class TimeListAdapter extends ArrayAdapter { public TimeListAdapter(Context context, int textViewResourceId) { super(context, textViewResourceId); } @Override

18、 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);

19、 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);

20、 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.Han

21、dler; 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 TimeTrackerAc

22、tivity 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) {

23、 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.s

24、tart_stop); startButton.setOnClickListener(this); Button stopButton = (Button) findViewById(R.id.reset); stopButton.setOnClickListener(this); if (mTimeListAdapter == null) mTimeListAdapter = new TimeListAdapter(this, 0); ListView list =

25、 (ListView) findViewById(R.id.time_list); list.setAdapter(mTimeListAdapter); if (Util.useStrictMode(this)) { StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectAll() .penaltyLog() .penaltyDialog()

26、 .build()); StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectAll() .penaltyLog() .penaltyDialog() .build()); } } @Override protected void onDestroy() { mHandler.removeMessages

27、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(); ssBu

28、tton.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);

29、 counter.setText(DateUtils.formatElapsedTime(0)); ssButton.setText(R.string.start); } } private void startTimer() { mStart = System.currentTimeMillis(); mHandler.removeMessages(0); mHandler.sendEmptyMessage(0); } private vo

30、id stopTimer() { mHandler.removeMessages(0); } private boolean isTimerRunning() { return mHandler.hasMessages(0); } private void resetTimer() { stopTimer(); if (mTimeListAdapter != null) mTimeListAdapter.add(mTime/1000);

31、 mTime = 0; } private Handler mHandler = new Handler() { public void handleMessage(Message msg) { long current = System.currentTimeMillis(); mTime += current - mStart; mStart = current; TextView counter = (TextView) TimeT

32、rackerActivity.this.findViewById(R.id.counter); counter.setText(DateUtils.formatElapsedTime(mTime/1000)); mHandler.sendEmptyMessageDelayed(0, 250); }; }; } (7)为了防止出现应用程序可能会遇到违反政策的对话框或者甚至会经历应用崩溃,这时可以只在调试模式时启用strictmode。要检测一个应用程序是否运行在调试模式,检测ApplicationInfo

33、标志就行。在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 {

34、 public static boolean isDebugMode(Context context) { PackageManager pm = context.getPackageManager(); try { ApplicationInfo info = pm.getApplicationInfo(context.getPackageName(), 0); return (info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;

35、 } catch (NameNotFoundException e) { } return true; } public static boolean useStrictMode(Context context) { return isDebugMode(context) && Build.VERSION.SDK_INT >= 9; } } (8)运行timetracker工程: 在所有应用程序中找到timetracker应用,点开运行: 运行正常,期间没有出现软件崩溃的情况。

36、 总结 通过大概一个星期的学习与代码编写,终于将timetracker应用程序编出来了,也将apk下载到自己的手机上进行了实际的应用,这么多天的努力总算没有白费。 在做Android开发的过程中也遇到了很多的问题,主要有: (1) 首先是软件的安装,由于Android是基于Java语言环境的,首先是要装JDK,该开始以为安装这个软件只要一步步走就好了,没有设置环境变量,导致java语言不能用;sdk的安装也是很费劲,因为Google服务器在国外的原因,安装更新很麻烦,大概安装了6个小时才好。 (2) 在编写好res\layout\mai

37、n.xml时,一直有警告出现,但是检查了几遍以后还是没有发现错误。后来根据错误原因找到了原来在menu文件夹下也有一个main.xml,由于这个应用程序没有用到menu,所以将该文件删除后就解决了。 (3) 在编写好timeadapter和timetrackeractivity以后,一直有错误,原因是缺少自动生成文件R.java文件,根据网上的解决方案,包括clean程序,刷新程序,删除自动生成文件gen,更新ADT等问题都试了一遍,还是没有解决问题。最后在网上问了,得到的解决。原来是eclipse版本原因,我这个版本Android程序图片文件drawable默认是ic_launcher.png,而现在一般默认是icon.png。 这些就是在做timetracker过程中遇到的主要问题。 总而言之,在这一个多礼拜的学习和实践中,我学到了很多关于Android开发的知识和经验,同时也学习了Java语言。但是我不会拘泥于这一个简单的软件,以后我还要更加努力学习前沿的知识,将其运用于实践。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服