Welcome 微信登录

首页 / 移动开发 / Android

Android中Fragment的生命周期与返回栈的管理

Android中Fragment的生命周期与返回栈的管理

既然我们已经知道了Fragment很好用,那么我们也需要知道它的工作原理。Fragment只能存在于(作为容器的)Activity中,每一个Fragment都有自己的视图结构,可以像我们之前那样载入布局。Fragment的生命周期更加复杂,因为它有更多的状态,如图:我们来看一下Fragment完整的生命周期。在Fragment生命周期开始,onInflate方法被调用。要注意的是,这个方法只在我们直接用标签在布局文件中定义的时候才会被调用。我们可以在这个方...
实例讲解Android应用开发中Fragment生命周期的控制

实例讲解Android应用开发中Fragment生命周期的控制

一、Fragment的生命周期初探因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的。如果Activity是暂停状态,其中所有的Fragment都是暂停状态;如果Activity是stopped状态,这个Activity中所有的Fragment都不能被启动;如果Activity被销毁,那么它其中的所有Fragment都会被销毁。但是,当Activity在活动状态,可以独立控制Frag...
Android的Fragment的生命周期各状态和回调函数使用

Android的Fragment的生命周期各状态和回调函数使用

回调函数就像activities一样,fragments也有它们自己的生命周期。理解fragments的生命周期,可以使你在它们被销毁的时候保存它们的实例,这样在它们重新被创建的时候,就能恢复它们之前的状态。流程: onAttach() 作用:fragment已经关联到activity, 这个是 回调函数@Overridepublic void onAttach(Activity activity) {super.onAttach(activity);Lo...
Android app开发中的Fragment入门学习教程

Android app开发中的Fragment入门学习教程

在Android3.0上开始引入了一个新概念叫Fragment。它有自己的布局文件,可以作为组件排布,也可以相互组合去实现不同的布局显示。使用Fragment可以重复利用代码,并且可以满足不同设备尺寸的需求。Fragment不能单独存在,只能存在于Activity中,而一个Activity可以拥有多个Fragment。很重要的一点是,Fragment可以和Activity中的其它组件一起使用,无需重写所有Activity的接口。所以使用Fragment就可...
浅谈Android app开发中Fragment的Transaction操作

浅谈Android app开发中Fragment的Transaction操作

在Android中,对Fragment的操作都是通过FragmentTransaction来执行。而从Fragment的结果来看,FragmentTransaction中对Fragment的操作大致可以分为两类:显示:add() replace() show() attach()隐藏:remove() hide() detach()对于每一组方法,虽然最后产生的效果类似,但方法背后带来的副作用以及对Fragment的生命周期的影响都不尽相同。add() v...
Android应用开发中Fragment间通信的实现教程

Android应用开发中Fragment间通信的实现教程

为了重用Fragment UI 组件,在设计中你应该通过定义每一个fragemnt自己的layout和行为,让fragment的自包含和模块化。一旦你定义了这些可重用的Fragment,你可以通过Activity将它们关联起来并通过程序的逻辑代码将他们连接起来以实现整体组合的UI。你会经常想要一个fragment与另一个fragment通信,例如基于用户事件改变fragment中的内容。所有fragment质检单额通信都是通过Activity关联起来的。两...
Android应用开发中Fragment与Activity间通信示例讲解

Android应用开发中Fragment与Activity间通信示例讲解

首先,如果你想在android3.0及以下版本使用fragment,你必须引用android-support-v4.jar这个包然后你写的activity不能再继承自Activity类了,而是要继承android.support.v4.app.FragmentActivity,一些其他的父类也有相应的变化.由于在android的实现机制中fragment和activity会被分别实例化为两个不相干的对象,他们之间的联系由activity的一个成员对象fra...
Java操作FreeMarker模板引擎的基本用法示例小结

Java操作FreeMarker模板引擎的基本用法示例小结

FreeMarker 是一个采用 Java 开发的模版引擎,是一个基于模版生成文本的通用工具。 它被设计用来生成 HTML Web 页面,特别是基于 MVC 模式的应用程序。虽然使用FreeMarker需要具有一些编程的能力,但通常由 Java 程序准备要显示的数据,由 FreeMarker 生成页面,并通过模板显示准备的数据。 http://freemarker.org/public void process(String template, Map&l...
Android开发之Android studio的安装与使用

Android开发之Android studio的安装与使用

该专题的目的:学习Android studio的特性和技巧,学习Gradle的黑魔法,学习Android的最热框架,学习Android5.0以上的新特性。该专题的行文顺序:从Android studio的特性和相关技巧以及在工作和学习中使用到的贴心插件和相关小魔法会一一介绍给大家,再根据项目的搭建,介绍给大家gradle的黑魔法,如何加速build过程,如何简单高效的使用gradle。之后,会根据项目的搭建,会向大家介绍Android的相关框架以及使用指南...
Android开发之关于项目

Android开发之关于项目

本系列文章会根据项目的进度进行相关介绍,其会分为多个模块,每个模块互不依赖,各个模块都是单独的学习内容,如sqlite学习模块,contacts联系人模块等。新建项目相信大部分童鞋都可以自定义项目了,那么在此,我简单介绍下android studio新建项目的过程。最终,android studio会为你生成2个build.gradle文件,你可以选择android视图浏览文件,根据google最新提供的sdk版本,我们把项目设置为api 14~23,打开...
Android开发之RecyclerView控件

Android开发之RecyclerView控件

现阶段,我们创建了最简单的Android项目,现在在此公布github链接https://github.com/neuyu/android-best-practices,希望大家多多支持。因为之前谈到过包结构的定义,我选择第一种方式,按照Android特性定义,所以你的包结构应该是这样的:RecyclerView在MainActivity中,我们需要用到RecyclerView这一新控件,那么如何引用,如何使用它呢?在gradle文件中添加库依赖:comp...
Android远程服务编写和调用教程

Android远程服务编写和调用教程

网上汗牛充栋的文章都是介绍Android远程服务的,一个个将Binder机制、AIDL讲得头头是道,然而没有几个人能够给出清晰的范例说明如何用最快的方法学会编写和调用一个Android远程服务。若你仅仅是想如何编写或者调用Android的远程服务,而懒得去理解Binder机制是如何运行的,那么本篇文章正好适合你。毕竟现在人人都会开车,但没有几个人明白发动机到底是如何运作的。预备知识读者应该有基本的java知识,和Android简单app的开发经验。环境代码...
Android开发之针对联系人的封装

Android开发之针对联系人的封装

大家可能在做app的时候,或多或少需要使用联系人,而根据google提供的api,你需要编写大量的代码,例如首先需要查询数据库,涉及到数据库表和字段以及对应的SQL语句。那么我们是否可以在我们的项目中添加联系人模块,这样能够更方便的使用手机联系人呢,答案是肯定的,并将其作为一个独立的模块,这样在你的其他app中,你都可以引入该模块,或者你能够将该模块上传到maven库,方便大家的使用。那么先来看看效果吧:首先是将来涉及到的各个模块的item。然后是单个模块...
Java操作Ant压缩和解压文件及批量打包Anroid应用

Java操作Ant压缩和解压文件及批量打包Anroid应用

实现zip/tar的压缩与解压java中实际是提供了对 zip等压缩格式的支持,但是为什么这里会用到ant呢?原因主要有两个:1. java提供的类对于包括有中文字符的路径,文件名支持不够好,你用其它第三方软件解压的时候就会存在乱码。而ant.jar就支持文件名或者路径包括中文字符。2. ant.jar提供了强大的工具类,更加方便于我们对压缩与解压的操作。注意事项:1. 首先说明一下,关于皮肤或者类似于皮肤的Zip包,实际上公司可能会根据自己的规定或需求,...
详解Android中BroadCastReceiver组件

详解Android中BroadCastReceiver组件

BroadcastReceiver也就是“广播接收者”的意思,它是用来接收来自系统和应用中的广播。在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver是对发送出来的 Broadcast进行过滤接受并响应的一类组件。下面将详细的阐述如何发送Broadcast和使用BroadcastReceiver过滤接收的过程:(1)首先在需要发送信息的地方,把要发送的信息和用于过滤的信息(如Action、...
分析Android App中内置换肤功能的实现方式

分析Android App中内置换肤功能的实现方式

Android平台api没有特意为换肤提供一套简便的机制,这可能是外国的软件更注重功能和易用,不流行换肤。系统不提供直接支持,只能自行研究。 换肤,可以认为是动态替换资源(文字、颜色、字体大小、图片、布局文件……)。这个使用编程语言来动态设置是可以做到的,例如使用View的setBackgroundResource、setTextSize、setTextColor等函数。但我们不可能在每个activity里对页面里的所有控件都通过调用这些函数来换肤,这样的...
仿墨迹天气在Android App中实现自定义zip皮肤更换

仿墨迹天气在Android App中实现自定义zip皮肤更换

在这里谈一下墨迹天气的换肤实现方式,不过首先声明我只是通过反编译以及参考了一些网上其他资料的方式推测出的换肤原理, 在这里只供参考. 若大家有更好的方式, 欢迎交流.墨迹天气下载的皮肤就是一个zip格式的压缩包,在应用的时候把皮肤资源释放到墨迹天气应用的目录下,更换皮肤时新的皮肤资源会替换掉老的皮肤资源每次加载的时候就是从手机硬盘上读取图片,这些图片资源的命名和程序中的资源的命名保持一致,一旦找不到这些资源,可以选择到系统默认中查找。这种实现是直接读取了外...
Android应用开发中实现apk皮肤文件换肤的思路分析

Android应用开发中实现apk皮肤文件换肤的思路分析

在android的项目开发中,都会遇到后期功能拓展增强与主程序代码变更的现实矛盾,也就是程序的灵活度。 由于linux平台的安全机制,再加上dalvik的特殊机制,各种权限壁垒,使得开发一个灵活多变的程序,变得比较困难,不像pc平台下那么容易。这里实际上可以借鉴传统软件中扩展程序的方法: 也就是插件的实现. 如目前所有的浏览器,比如我们使用的eclipse,以及很多优秀的软件,都使用了此种方式. 这样轻松实现了软件的功能扩展,而升级功能时只用更新对应插件,...
<< 241 242 243 244 245 246 247 248 249 250 >>