安卓零基础

Android零基础入门第86节:探究Fragment生命周期

假如想象 提交于 2019-11-28 19:41:45
一个Activity可以同时组合多个Fragment,一个Fragment也可被多个Activity 复用。Fragment可以响应自己的输入事件,并拥有自己的生命周期,但它们的生命周期直接被其所属的Activity的生命周期控制。 一、Fragment状态 与Activity类似的是,Fragment也存在如下4种状态: 运行状态:当前Fmgment位于前台,用户可见,可以获得焦点。 暂停状态:其他Activity位于前台,该Fragment依然可见,只是不能获得焦点。 停止状态:该Fragment不可见,失去焦点。 销毁状态:该Fragment被完全删除,或该Fragment所在的Activity被结束。 结合之前学习Activity的状态,理解Fragment的状态非常简单。 很多地方都在说明 Fragment有三个状态,包括官方文档没有提到Fragment的 销毁状态。这也是合理的,因为处于销毁状态的Fragment基本不可用了,只能等着被回收。 二、Fragment生命周期 Fragment的生命周期与Activity的生命周期十分相似,如下图所示: 从上图可以看出,Activity中的生命周期方法,Fragment中基本都有,但是Fragment比Activity多几个方法。各生命周期方法的含义如下: onAttach()

Android零基础入门第87节:Fragment添加、删除、替换

半城伤御伤魂 提交于 2019-11-28 19:41:31
前面一起学习了Fragment的创建和加载,以及其生命周期方法,那么接下来进一步来学习Fragment的具体使用,本期先来学习Fragment添加、删除、替换。 一、概述 在前面的学习中,特别是动态加载的时候,有提到FragmentManager和FragmentTransaction类,这里先来详细了解一下其到底为何物。 1、FragmentManager 要管理Activity中的Fragments,就需要使用FragmentManager类。通过getFragmentManager()或getSupportFragmentManager()获得 。 FragmentManager类常用的方法有以下几个: findFragmentById(int id):根据ID来找到对应的Fragment实例,主要用在静态添加Fragment的布局中,因为静态添加的Fragment才会有ID 。 findFragmentByTag(String tag):根据TAG找到对应的Fragment实例,主要用于在动态添加的Fragment中,根据TAG来找到Fragment实例 。 getFragments():获取所有被add进Activity中的Fragment 实例。 benginTransatcion():开启一个事物。 2、FragmentTransaction 如果需要添加、删除

Android零基础入门第78节:四大组件的纽带——Intent

牧云@^-^@ 提交于 2019-11-28 18:56:57
前面学习Activity时己经多次使用了 Intent,当一个Activity需要启动另一个Activity时, 程序并没有直接告诉系统要启动哪个Activity,而是通过Intent来表达自己的意图:需要启动哪个Activity。 Intent不仅是封装Android应用程序需要启动某个组件的“意图”,还是应用程序组件之间通信的重要媒介。本节开始来学习Intent的使用。 一、Intent介绍 Intent最常见的用途是绑定应用程序组件,并在应用程序之间进行通信。尽管 Intent 可以通过多种方式促进组件之间的通信,但其基本用例主要包括以下三个: 1.启动 Activity Activity 表示应用中的一个屏幕。通过将 Intent 传递给 startActivity(),可以启动新的 Activity 实例。Intent 描述了要启动的 Activity,并携带了任何必要的数据。 如果希望在 Activity 完成后收到结果,则可以调用 startActivityForResult()。在 Activity 的 onActivityResult() 回调中,Activity 将结果作为单独的 Intent 对象接收。 2.启动服务 Service 是一个不使用用户界面而在后台执行操作的组件。通过将 Intent 传递给 startService()

Android零基础入门第83节:Activity间数据传递方法汇总

ⅰ亾dé卋堺 提交于 2019-11-28 12:06:40
在Activity间传递的数据一般比较简单,但是有时候实际开发中也会传一些比较复杂的数据,本节一起来学习更多Activity间数据的传递。 一、常用数据类型 在前面几节我们只学习了一些常用类型的数据传递,主要是以下这些重载方法: putExtra(String name, boolean value) putExtra(String name, byte value) putExtra(String name, char value) putExtra(String name, short value) putExtra(String name, int value) putExtra(String name, long value) putExtra(String name, float value) putExtra(String name, double value) putExtra(String name, String value) putExtra(String name, CharSequence value) putExtras(Intent src) putExtras(Bundle extras) putExtra(String name, Bundle value) getBooleanExtra(String name, boolean

Android零基础入门第85节:Fragment使用起来非常简单

半城伤御伤魂 提交于 2019-11-28 12:06:25
Fragment创建完成后并不能单独使用,还需要将Fragment加载到Activity中,在Activity中添加Fragment的方式有两种:静态加载和动态加载,接下来分别进行学习。 一、静态加载 静态加载Fragment非常简单,直接把Fragment当成普通的控件写在Activity的布局文件中。使用<fragment></fragment>标签,该标签与其他控件的标签类似,但必须要指定android:name属性或class属性,其属性值为Fragment的全路径名称。 接下来在上一期的案例基础上继续学习,首先修改activity_main.xml文件,修改后的代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <fragment android:id="@+id/fragment_one" android:name="com.jinyu.cqkxzsxy.android

Android零基础入门第82节:Activity数据回传

落爺英雄遲暮 提交于 2019-11-28 12:06:13
上一节学习了将简单的数据从MainActivity传递到SecondActivity,本节一起来学习数据如何从SecondActivity回传到MainActivity。 一、简介 前面己经提到,Activity 还提供了一个 startActivityForResult(Intent intent, int requestCode) 方法来启动其他Activity。该方法用于启动指定Activity,而且期望获取指定Activity返回的结果。这种请求对于实际应用也是很常见的,例如应用程序第一个界面需要用户进行选择——但需要选择的列表数据比较复杂,必须启动另一个Activity让用户选择。当用户在第二个Activity 中选择完成后,程序返回第一个Activity,第一个Activity必须能获取并显示用户在第二个 Activity中选择的结果。在这种应用场景下,也是通过Bundle进行数据交换的。 为了获取被启动的Activity所返回的结果,需要从以下三方面着手。 使用startActivityForResult(Intent intent, int requestCode) 方法启动指定Activity。 当前 Activity 需要重写 onActivityResult(int requestCode,int resultCode,Intent intent),

Android零基础入门第81节:Activity数据传递

情到浓时终转凉″ 提交于 2019-11-28 12:05:17
在Android开发中,经常要在Activity之间传递数据。前面也学习了Activity和Intent相关基础,接下来一起来学习Activity的数据传递。 一、简介 通过前面的学习知道,Intent可以用来开启Activity,同样它也可以用来在Activity之间传递数据。Intent提供了多个重载的方法来携带额外的数据,如下所示。 putExtra(String name, xxx value):向 Intent 中按 key-value 对的形式存入数据。 getXxxExtra(String name):从Intent中按key取出指定类型的数据。 putExtras(Bundle data):向Intent中放入需要携带的数据包。 Bundle getExtras():取出Intent中所携带的数据包。 使用Intent传递数据只需调用putExtra()方法将想要存储的数据存在Intent中即可。当启动了另一个Activity后,再把这些数据从Intent中取出即可。其核心示例代码如下: // 从MainActivity传递数据到SecondActivity Intent intent=new Intent(MainActivity.this,SecondActivity.class); String name="admin "; intent.putExtra(

Android零基础入门第84节:引入Fragment原来是这么回事

人走茶凉 提交于 2019-11-27 13:47:42
随着大众生活水平的提高,再加上移动互联网的迅速发展,几乎每个人都至少拥有一台搭载Android系统的移动设备。Android设备的多样性给我们带来了很大的便捷,各Android设备拥有不同分辨率和不同屏幕大小,特别是平板电脑和手机间的差别巨大,使得同样的界面在不同的设备上显示出不同的效果。为了能够同时兼顾到手机和平板电脑的开发,自Android 3.0版本开始引入了碎片的概念,也就是Fragment。 Fragment作为Android最基本、最重要的基础概念之一,在开发中经常会用到,本章我们一起来学习 Fragment的使用。 一、Fragment概述 Fragment 是一种可以嵌人在Activity中的UI片段,它能让程序更加合理地利用大屏幕空间,因而Fragment在平板上应用非常广泛。Fragment与Activity十分相似,它包含布局,同时也具有自己的生命周期。 一个Fragment代表着Activity中一种行为或者Activity用户界面中的一部分。我们可以将多个Fragment组合在一个Activity中,组成一个多窗格布局;同样我们也可以在多个Activity中重复使用某个Fragment。我们可以将Fragment当作一个Activity中的小模块(它有它自己的生命周期,自己的事件处理机制),在Activity运行过程中,我们可以动态地添加或者移除这个模块。