热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于安卓手持设备的手机应用编程——Intent、Permission、Fragment

ProgrammingMobileApplicationsforAndroidHandheldSystems:Part1Coursera课程笔记。*Intent功能,首先它可以定义你

Programming Mobile Applications for Android Handheld Systems: Part 1 Coursera课程笔记。


*Intent功能,首先它可以定义你想要进行的操作,如选择联系人、拍照片、打电话;它还可以传递一个组件中的事件到另外的组件中。

通常的实现形式是一个Activity中建立Intent和描述所需的操作,然后新建另一个将此操作实现的Activity。


Intent包含的域包括行为、数据、策略、资源的媒体类型、组件等。


*怎样使用Intent来启动Activity
有两种方法Android来识别所需启动的Activity:
显式声明需启动的Activity名。传入的参数分别为Context和Class类型。
隐式地根据Intent中的参数和现有Activity的属性。Intent resolution。
隐式方式中Activity需要指定Intent Filters来描述所能处理的操作。这通常被放置在AndroidManifest.XML文件中,或者是在Activity所在的应用中。Android根据Intent中的Action、Data和Category来和Activity中的intent filters匹配。

如果想要设定一个Activity作为应用主入口,需在该Activity下的标签中加入;需要一个Activity作为主入口并设置一个顶层启动图标。则需添加


*用Intent在两个Activity间简单传输数据的过程:
在Activity1中调用startActivityForResult方法,传入参数intent和requestCode,在onActivityResult方法中处理Activity2中setResult传回的intent。
Permissions用于控制对重要数据资源和操作的访问权限,如对用户通讯录、摄像头等系统资源。

*如何使用Permissions

应用用androidmanifest.xml文件中的标签来指定所用到的permission。当应用启动时,用户需要接受这些permissions,否则程序便会出错。

应用也可以制定标签权限来限制其他应用的访问。

组件也可以制定自己的Permission,其优先级在应用层面的Permission之上。在定制permission时除设置permission标签之外还要在相应的Activity中标出android:permission。

添加震动服务的Permission

*Fragment类

Android3.0以上可以使用Fragment来支持平板设备,来解决一个Activity在手机和平板两种不同设备间转换产生的问题。
Fragment代表了Activity用户界面的一部分,一个Activity可以由零个到多个Fragments组成,一个Fragment也可以由零个到多个Activity调用。Fragment的生命周期和调用它的Activity的生命周期有关,除此之外,Fragment还有自己的生命周期调用反馈。
Fragment和Activity的Resume、Paused、Stopped状态同步。

*当持有Fragment的Activity创建时,Fragment会接收到多个方法调用。
fragment会依次收到onAttach、onCreate的调用。其中onCreate是Fragment的方法而不是Activity的,fragment.onCreate也是关于初始化组件,但不需建立用户交互接口。接下来是onCreateView,此方法是fragment用于设置用户界面的方法,这个界面将提交给Activity并安装在Activity的视图层级中,最后是onActivityCreated方法。

*Fragment有两种方式添加到Activity中:
1、它们可以静态地添加到Activity的布局文件中,由setContentView调用。
2、使用FragmentManager。
此后,在Activity开始时,fragment也会收到与Activity同步的生命周期方法,直到最终调用onDestroyView、onDestroy、onDetach。

*在Activity中使用Fragment的步骤如下:
取得FragmentManager的引用。
新建一个FragmentTransaction。
传入fragment的ID和视图。
最后调用fragmentTransaction的commit方法。

在Activity因配置改变而被重建时,设置fragment不被销毁,即不会调用onDestrory和onCreate方法,当Activity重启时再次连接,这样会缩短程序的执行时间。


推荐阅读
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讲述了如何通过代码在Android中更改Recycler视图项的背景颜色。通过在onBindViewHolder方法中设置条件判断,可以实现根据条件改变背景颜色的效果。同时,还介绍了如何修改底部边框颜色以及提供了RecyclerView Fragment layout.xml和项目布局文件的示例代码。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
author-avatar
曾玉珊志君
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有