Android实践
文章平均质量分 84
以实战为线索,逐步深入了解Android开发各个环节
高自期许
华为前员工,现武大在读硕。欢迎大家找我交流
展开
-
Android位置服务和应用权限
并不是所有设备都同时又这两类位置提供者,所以可以使用位置管理器的getBestProvider方法得到设备上最准确的位置提供者,这个方法有两个参数:一个Criteria对象(可以用来指定电量需求之类的标准),以及一个标志(指示当前是否应当在设备上启用)。这些服务允许你得到用户的当前位置,请求定期更新,并在用户进入一个特定位置指定半径范围内时请求触发一个意图。这个方法有4个参数:位置提供者、更新的最小时间间隔,位置更新之间的最小距离,你希望接收这些更新的位置监听器。指定位置提供者用来确定用户的位置。原创 2023-10-13 09:32:09 · 682 阅读 · 0 评论 -
Android绑定式服务
启动式服务对于后台操作很合适,不过需要一个更有交互性的服务。接下来构建这样一个应用:1、创建一个绑定式服务的基本版本,名为OdometerService我们要为它增加一个方法getDistance(),这个方法会返回一个随机数2、让活动MainActivity绑定到OdometerService,并调用它的getDistance方法。将每秒调用一次这个方法,在MainActivity中用得到的结果更新一个文本视图。原创 2023-10-11 16:16:23 · 524 阅读 · 0 评论 -
Android启动式服务
服务是与活动类似的应用组件,只不过服务没有用户界面。使用服务可以一直在后台做某些事情,比如下载一个大文件,播放一段音乐或者监听来自服务器的一个消息。有三种类型的服务:1、启动式服务启动式服务可以在后台无限期的运行,即使启动这个服务的活动已经撤销,也不会影响服务的运行。2、绑定式服务绑定式服务会绑定到另一个应用组件,如一个活动。这个活动可以与绑定式服务交互,发送请求并得到结果。只要与之绑定的组件还在运行,绑定式服务就会一直运行下去。这个组件不再与之绑定时服务将会被撤销。原创 2023-10-09 10:20:05 · 421 阅读 · 0 评论 -
Android异步和线程
Android应用打开数据库时首先要搜索数据库文件,如果没有找到数据库文件就要创建一个空的数据库。然后它要运行所有SQL命令,在数据库中创建数据库表和需要的所有初始数据。最后还要执行一些查询从数据库得到数据。原创 2023-10-08 21:37:35 · 394 阅读 · 0 评论 -
更新SQLite数据库数据
之前了解了如何修改应用让它从SQLite数据库中提取数据,但是还没有用过更新过数据库数据。这里要修改应用使用户能够记录哪些饮料是他们的最爱。为此要为DrinkActivity增加一个复选框;如果选中这个复选框,就说明当前饮料是用户的一个最爱。还要为TopLevelActivity增加一个新的列表视图,其中包含用户最喜欢的饮料。原创 2023-10-07 13:10:48 · 429 阅读 · 0 评论 -
取出SQLite数据(基本游标)
前面一节中已经为Starbuzz创建了一个SQLite帮助器。目前还是从Java Drink类获取数据,这时候要修改这个应用从SQLite数据库获取数据。本文所有代码均存放于。原创 2023-10-07 08:35:12 · 752 阅读 · 0 评论 -
SQLite数据库
本文所有代码均存放于在Android世界里,通常可以把数据安全地存放在SQLite数据库中。回到之前创建地Starbuzz应用,这个应用允许用户通过一系列屏幕导航查看Starbuzz提供的饮料。接下来让它从SQLite数据库获取数据。原创 2023-10-04 00:01:44 · 219 阅读 · 0 评论 -
Android导航抽屉
本文所有代码均位于之前使用过标签页布局可以让用户在应用中轻松地导航。当只有为数不多地几个类别屏幕,而且它们都在应用层次结构地同一级上,标签页布局就很适用。而可以实现更多选择,这是一个滑出式面板,包含了应用其他部分地链接。这可以把链接分组为不同的区段。原创 2023-09-28 00:46:28 · 644 阅读 · 0 评论 -
Android回收视图
本文所有代码均存放于回收视图是列表视图的一个更高级也更灵活的版本。回收视图比列表视图更加灵活,所以需要更多设置,回收视图使用一个适配器访问它的数据,不过与列表视图不同,回收视图不使用数组适配器之类的内置Android适配器。你必须编写你自己的适配器,要根据数据适当裁剪。这包括指定的数据的类型,创建视图并把视图绑定到视图。另外要使用一个布局管理器将数据项放置在回收视图中,有很多内置的布局管理器可以使用,可以把数据项放在一个线性列表或网格中。原创 2023-09-24 23:14:28 · 220 阅读 · 0 评论 -
Android设计支持库
设计支持库(Design Support Library)是 Google 在 2015 年的 I/O 大会上发布的全新 Material Design 支持库,在这个 support 库里面主要包含了 8 个新的 Material Design 组件,最低支持 Android 2.1。设计支持库提供了一系列 Material Design 风格的组件,帮助开发者快速构建符合 Material Design 规范的 Android 应用程序。原创 2023-09-22 00:22:56 · 237 阅读 · 0 评论 -
Android滑动片段
滑动标签片段原创 2023-09-20 20:57:20 · 333 阅读 · 0 评论 -
Android嵌套事务
这时候旋转设备还是会重置秒表。旋转设备时Android会重新创建活动。如果你的活动包含一个 < fragment >元素,每次重新创建活动时,它会重新插入片段的一个新版本。老片段被丢掉,所有实例变量会设置其初始值。在这个特定的例子中,这意味着秒表会设置回到0。所以动态片段需要一个片段事务,片段元素对于显示静态数据的片段很适用,但是如果有一个动态片段,就需要使用片段事务来增加片段。修改activity_temp.xml来使用FrameLayout。原创 2023-09-14 22:46:42 · 318 阅读 · 0 评论 -
Android动态片段
之前创建的片段都是静态的。一旦显示片段,片段的内容就不能改变了。尽管可以用一个新实例完全取代所显示的片段,但是并不能更新片段本身的内容。之前已经创建过一个基础秒表应用,具体代码。我们将这个应用增加到WorkoutDetailFragment,把它显示在训练项目的详细信息之下。原创 2023-09-13 11:36:11 · 376 阅读 · 0 评论 -
Android后退堆栈
希望片段处理后退的方式:假设用户在手机上运行这个应用,单击一个训练项目时,会在另一个活动中显示这个训练项目的详细信息。在应用中从一个活动访问到另一个活动时,Android会把各个活动增加到一个后退堆栈,来跟踪你访问过的所有活动,后退堆栈是一个日志,记录了你在设备上访问过的所有地方,每个地方记录为一个单独的事务。现在的ItemClick使得用户单击其中一个项目时就会跳转,现在要修改其使得在一个小屏幕设备上才会这样做,在一个大屏幕设备上运行用户选择一个训练项目时在右边的片段显示响应的信息。原创 2023-09-05 20:25:49 · 583 阅读 · 0 评论 -
面向更大屏幕的片段
目前为止,只做过小屏幕设备运行应用。本文中将创建灵活的用户界面,根据运行应用的设备让应用有不同的外观和行为。之前我们创建了在手机上运行的Workout应用版本。但是在一个平板上运行这个应用时,应用的表现几乎是一样的。不过由于屏幕更大,所以用户界面中有大量空置的空间,可以更好的利用一下这些空间。原创 2023-09-05 16:29:29 · 109 阅读 · 0 评论 -
连接列表和详细信息
连接列表和详细信息原创 2023-09-04 20:57:02 · 130 阅读 · 0 评论 -
Android列表片段
不用创建你自己的时间监听器并绑定到列表视图,而只需要实现列表片段的onListItemClick()方法。列表片段生成的布局包括一个列表视图,可以在活动代码中使用列表片段的getListView()方法访问这个列表视图。初始化数组适配器时,首先要指定绑定到列表的数组中包含什么类型的数组,然后要传入3个参数:一个Context(上下文,通常是当前活动)、一个布局资源(指定如何显示数组中的各项),以及数组本身。列表片段是一种专门处理列表的片段,它会自动绑定到一个列表视图,所以不需要另外创建列表视图。原创 2023-09-04 18:50:29 · 658 阅读 · 0 评论 -
片段与活动的交互
后者会得到处理支持库片段的片段管理器的一个引用,前者得到处理其他片段的片段管理器的引用,这些片段使用原生的Android片段类。由于片段于活动不同,因此片段没有包含活动的所有方法,片段没有findViewById方法,要得到片段中视图的引用,首先必须使用geyView方法得到片段根视图的引用,然后使用根视图查找它的子视图。片段管理器用于跟踪和处理活动使用的所有片段。另外的,Fragment类是继承自java.lang.Object类的,并不扩展Activity类,这表明活动可用的一些方法在片段中无法使用。原创 2023-09-01 00:38:33 · 453 阅读 · 0 评论 -
Android片段
需要注意的是,支持库片段需要扩展了FragmentActivity的活动,但是AppCompatActivity是FragmentActivity的一个子类,所以扩展了AppCompatActivity类就不会有什么问题,下面是DetailActivity.java的代码。如果精心设计,可以使用Java代码完全控制界面,如果片段代码包含控制布局所需的全部内容,将大大增加在应用中重用这个片段的机会。如果活动的布局代码中只包含一个片段,则可以将上述代码直接简化为一个根元素为fragment的布局。原创 2023-08-31 22:14:54 · 601 阅读 · 0 评论 -
在应用条上共享内容
在应用条上共享内容原创 2023-08-31 17:25:38 · 148 阅读 · 0 评论 -
在应用条中添加向上导航
在应用条中添加向上导航原创 2023-08-31 16:13:59 · 113 阅读 · 0 评论 -
为应用条增加动作
实现该方法之后,会把你的菜单资源文件增加到应用条,也就是inflate,这说明它会创建一个menu对象,这是菜单资源文件的一个Java表示,菜单资源文件包含的所有动作会转换为MenuItem。再把这些菜单项增加到应用条。菜单资源文件有一个menu元素作为它的根元素,其中可以有多个item元素,每个item元素描述一个不同的动作,动作包含很多属性,可以确定这个动作在应用条上如何显示,如它的图标和文本。大多数应用中都可能会为应用条增加动作,动作是应用条中的一些按钮或文本,可以单击它们来做一些事情。原创 2023-08-29 23:00:52 · 89 阅读 · 0 评论 -
Android工具条
在底层,所有通过主题得到应用条的活动都使用ActionBar类实现它的应用条。不过最新的应用条特性已经增加到AppCompat支持库中的Toolbar类。这意味着,如果你想在应用中使用最新的应用条特性,就需要使用支持库中的ToolBar类。3、删除现有的应用条。将主题替换为一个没有应用条的主题即可,例如NoActionBar。工具条是一个视图类型,所以可以把它放在你希望的任何位置,并控制它的外观。或者把工具条定义为一个单独的布局,在主布局中将其包含进去即可。5、更新活动,设置这个工具条作为活动的应用条。原创 2023-08-28 21:53:02 · 298 阅读 · 0 评论 -
支持库和应用条
这个图标作为应用的启动图标,如果你使用的主题会在应用条中显示一个图标,就会使用这个图标。android:label属性描述一个对用户友好的标签,它会显示在应用条中,在上面的代码中,< application >标签使用这个属性来为整个应用指定一个标签,也可以为< activity >标记增加这个属性,这会为一个活动指定标签。一旦在工程中增加了AppCompat支持库,就可以在你的应用中使用这个支持库的资源了,在这里我们希望应用其中一个主题,为MainActivity增加一个应用条。原创 2023-08-28 19:07:45 · 99 阅读 · 0 评论 -
合理组织安卓活动
用类别活动在一个列表视图中显示列表项,通常会使用onItemClick方法启动另一个活动来显示用户单击的列表项的详细信息。这里主要使用数组适配器。再使用drinkID得到用户选择的饮料的详细信息,drinkID时饮料的ID。开始构建一个应用时,你会考虑这个应用要包含什么,会有各种各样的很多想法,如何组织这些想法来建立一个直观、清晰的应用。首先是Drink类,这是一个纯Java类,定义了一个包括3中饮料的数组,每种饮料包括饮料名,描述,以及图像资源ID。在饮料类别活动中,会显示出售的所有饮料的一个清单。原创 2023-07-04 11:14:14 · 342 阅读 · 0 评论 -
Android约束布局
Android约束布局原创 2023-06-11 20:19:08 · 1856 阅读 · 0 评论 -
视图View和视图组ViewGroup
视图和视图组原创 2023-06-09 21:17:36 · 733 阅读 · 0 评论 -
帧布局叠放视图
帧布局叠放视图原创 2023-06-08 21:13:07 · 524 阅读 · 0 评论 -
控制视图内容的位置
控制视图内容的位置原创 2023-06-07 22:00:15 · 467 阅读 · 0 评论 -
为视图增加权重以调整基本线性布局
为视图增加权重以调整所占空间比例原创 2023-06-04 19:22:49 · 574 阅读 · 0 评论 -
布局和视图的常用属性
布局和视图的常用属性原创 2023-05-19 00:35:22 · 399 阅读 · 0 评论 -
Android活动生命周期
Android活动生命周期原创 2023-05-17 21:53:41 · 528 阅读 · 0 评论 -
使用onSaveInstaceState保存活动信息
使用onSavedInstanceState保存信息原创 2023-05-17 17:46:28 · 486 阅读 · 0 评论 -
使用Handler创建一个Android秒表应用
创建一个Android秒表应用原创 2023-05-10 01:28:52 · 976 阅读 · 0 评论 -
在一个真实的设备上调试Android应用
在一个真实的设备上调试Android应用原创 2023-05-05 22:45:13 · 532 阅读 · 0 评论 -
Android隐式意图
使用Android隐式意图不需要指定一个明确的活动原创 2023-05-05 20:17:42 · 709 阅读 · 0 评论 -
使用意图intent构建一个多活动的Android应用
所以Intent机制是Android应用组件之间的重要联系纽带,它使得Android应用变得松耦合、功能更加灵活,这也是Android应用框架的精髓所在。到目前为止,我们已经创建了一个包含两个活动的应用,而且每个活动都有自己的布局,接下来要做的就是在用户单击Send Message按钮时让CreateMessageActivity调用ReceiveMessageActivity。1、 启动Activity:可以启动自己应用内的Activity,也可以启动其他应用的Activity。原创 2023-05-04 20:34:08 · 500 阅读 · 0 评论 -
构建第一个Android交互式应用
构建第一个Android交互式应用原创 2023-04-29 00:29:27 · 821 阅读 · 0 评论 -
构建你的第一个Android应用
构建你的第一个Android应用原创 2023-04-27 01:48:35 · 1016 阅读 · 0 评论