intent传递对象

Android中的Intent[转]

让人想犯罪 __ 提交于 2019-12-06 17:23:18
在一个Android应用中,主要是由四种组件组成的,这四种组件可参考“Android应用的构成”。而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。在这些组件之间的通讯中,主要是由Intent协助完成的。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。 例如,在一个联系人维护的应用中,当我们在一个联系人列表屏幕(假设对应的Activity为listActivity)上,点击某个联系人后,希望能够跳出此联系人的详细信息屏幕(假设对应的Activity为detailActivity),为了实现这个目的,listActivity需要构造一个 Intent,这个Intent用于告诉系统,我们要做“查看”动作,此动作对应的查看对象是“某联系人”,然后调用startActivity (Intent intent),将构造的Intent传入,系统会根据此Intent中的描述,到ManiFest中找到满足此Intent要求的Activity,系统会调用找到的Activity,即为detailActivity

Android第三十四天

别说谁变了你拦得住时间么 提交于 2019-12-06 10:26:06
1、什么是适配器? 适配器是一个连接数据和AdapterView的桥梁,通过它能有效地实现数据与Adapter的分离设置,使Adapter与数据的绑定更加简便,修改更加方便。 2、常用的适配器有哪些? BaseAdapter、SimpleAdapter、Arrayadapter;CursorAdapter、SimpleCursorAdapter;PagerAdapter、FragmentPagerAdapter等。 3、一个适配器控件通过一个适配器展示数据的步骤: <1>查找控件; <2>生成数据源; <3>构造适配器对象; <4>把数据和适配器产生联系; <5>把适配器和控件绑定; 控件.setAdapter(适配器); 4、接手一份别人写的代码,怎样快速知道程序当前的界面是哪个活动? <1>首先创建一个BaseActivity继承自Activity,再重写onCreate()方法。在onCreate()方法中获取当前实例的类名,并通过Log打印出来(Log.i("BaseActivity",getClass().getSimpleName();)); <2>让BaseActivity成为项目中所有活动的父类; <3>运行程序,在LogCat中观察相应信息。 5、活动的启动模式一共有四种,可以在AndroidManifest.xml中通过给<activity

Intent在Activity之间传值的几种方式

旧街凉风 提交于 2019-12-06 08:51:17
发这篇博客主要讲一下Android中Intent中如何传值的几种方法: 1:基本数据类型,包含了Java八种基本数据类型和CharSequece文本 2:八种数据类新对应数组和CharSequece文本数组 3:Bundle传值 4:ArrayList集合 5:Serializable传递对象 6:Parcelable传递对象 在 main.xml 布局文件中添加六个Button控件,分别是六种传值方式。 Activity代码如下: package com.example.transmittingdata; import java.util.ArrayList; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; /*** * * Intent传值包含 * 1:基本数据类型,包含了Java八种基本数据类型和CharSequece文本 * 2:八种数据类新对应数组和CharSequece文本数组 * 3:Bundle * 4:ArrayList集合 5:Serializable传递对象 * 6:Parcelable传递对象 * *

[Android] Intent对象

半腔热情 提交于 2019-12-06 08:50:44
Intent对象-Intent Objects Intent 本 身是一个消息的集合。他包含那些传递给接收Intent的组件的信息(such as the action to be taken and the data to act on)和传递给Android系统的信息(例如应该绑定到Intent上的组件的类别和如何启动目标activity的指南)主要的,他包含了以下几点: 组件名-Component name 组件的名字是应该可以处理Intent,为其指明目标的。这一段所描述的就是关于 ComponentName 的--他是目标组件的类名的联合体(例如 "com.example.project" )。组件名字中所包含的包名的部分不需要必须与manifest文件中的包名相匹配。 组件的名字是非强制性的。如果他是固定的,那么Intent就会被传递给指定名字的类的实例,如果他不是固定的,那么Android就会通过 Intent中的其他信息找到合适的目标--可以查看本文档以后的提到的#Intent解决方法-Intent Resolution|Intent解决方法-Intent Resolution。 组件名字可以通过 setComponent() , setClass() 或 setClassName() 来设置,通过getComponent()来读取。 动作-Action

android intent机制

妖精的绣舞 提交于 2019-12-06 04:21:28
在一个Android应用中,主要是由四种组件组成的,这四种组件可参考“Android应用的构成”。 而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。 在这些组件之间的通讯中,主要是由Intent协助完成的。 Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。 因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。 例如,在一个联系人维护的应用中,当我们在一个联系人列表屏幕(假设对应的Activity为listActivity)上,点击某个联系人后,希望能够跳出此联系人的详细信息屏幕(假设对应的Activity为detailActivity) 为了实现这个目的,listActivity需要构造一个 Intent,这个Intent用于告诉系统,我们要做“查看”动作,此动作对应的查看对象是“某联系人”,然后调用startActivity (Intent intent), 将构造的Intent传入,系统会根据此Intent中的描述,到ManiFest中找到满足此Intent要求的Activity,系统会调用找到的 Activity

android中的bundle使用

。_饼干妹妹 提交于 2019-12-05 22:00:35
1 Bundle介绍 Bundle主要用于传递数据;它保存的数据,是以key-value(键值对)的形式存在的。 我们经常使用Bundle在Activity之间传递数据,传递的数据可以是boolean、byte、int、long、float、double、string等基本类型或它们对应的数组,也可以是对象或对象数组。当Bundle传递的是对象或对象数组时,必须实现 Serializable 或Parcelable 接口。下面分别介绍Activity之间如何传递基本类型、传递对象。 2传递基本类型 Bundle提供了各种常用类型的putXxx()/getXxx()方法,用于读写基本类型的数据。Bundle操作基本数据类型的API表格如下所示: 写数据的方法如下: // "com.test" is the package name of the destination class// "com.test.Activity02" is the full class path of the destination classIntent intent = new Intent().setClassName("com.bundletest", "com.bundletest.Bundle02"); Bundle bundle = new Bundle();bundle.putString(

通过Intent传递类对象

两盒软妹~` 提交于 2019-12-05 13:01:52
一、Intent是什么 1、定义 Intent被译作意图,其实还是很能传神的,Intent期望做到的,就是把实现者和调用者完全解耦,调用者专心将以意图描述清晰,发送出去,就可以梦想成真,达到目的。 这 个解释还是有点不太好理解,下面还有一个:Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android 会根据意愿的内容选择适当的组件来完成请求。比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出 WEB_SEARCH_ACTION给Android,Android就会根据Intent的请求内容,查询各组件注册时声明的 IntentFilter,找到网页浏览器的Activity来浏览网页。 这个解释好像理解起来就容易好多,我们通过intent传入某种意图,而android就会根据这种意图,自动寻找合适的activity来启动,如果有 多个条件符合的activity,就以列表的方式让用户手动选择一个。 2、 显示Intent与 隐式I ntent 这两个概念刚开始不太好理解,先看两个通过intent启动activity的代码: 例一: Intent intent = new Intent(); intent

Android开发指南-框架主题-基础知识

谁都会走 提交于 2019-12-05 04:44:03
应用程序基础 关键类 Activity Service BroadcastReceiver ContentProvider Intent Android应用程序使用Java做为开发语言。aapt工具把编译后的Java代码连同其它应用程序需要的数据和资源文件一起打包到一个Android包文件中,这个文件使用.apk做为扩展名,它是分发应用程序并安装到移动设备的媒介,用户只需下载并安装此文件到他们的设备。单一.apk文件中的所有代码被认为是一个应用程序。 从很多方面来看,每个Android应用程序都存在于它自己的世界之中: 默认情况下,每个应用程序均运行于它自己的Linux进程中。当应用程序中的任意代码开始执行时,Android启动一个进程,而当不再需要此进程而其它应用程序又需要系统资源时,则关闭这个进程。 每个进程都运行于自己的Java虚拟机(VM)中。所以应用程序代码实际上与其它应用程序的代码是隔绝的。 默认情况下,每个应用程序均被赋予一个唯一的Linux用户ID,并加以权限设置,使得应用程序的文件仅对这个用户、这个应用程序可见。当然,也有其它的方法使得这些文件同样能为别的应用程序所访问。 使两个应用程序共有同一个用户ID是可行的,这种情况下他们可以看到彼此的文件。从系统资源维护的角度来看,拥有同一个ID的应用程序也将在运行时使用同一个Linux进程,以及同一个虚拟机。

Android中的定时器AlarmManager

百般思念 提交于 2019-12-05 02:36:21
在Android上常用的定时器有两种,一种是Java.util.Timer,一种就是系统的AlarmService AlarmManager的作用文档中的解释是:在特定的时刻为我们广播一个指定的Intent。简单的说就是我们设定一个时间,然后在该时间到来时,AlarmManager为我们广播一个我们设定的Intent,常用方法有五个: (1)set(int type,long startTime,PendingIntent pi); 该方法用于设置一次性闹钟,第一个参数表示闹钟类型,第二个参数表示闹钟执行时间,第三个参数表示闹钟响应动作。 (2)setRepeating(int type,long startTime,long intervalTime,PendingIntent pi); 该方法用于设置重复闹钟,第一个参数表示闹钟类型,第二个参数表示闹钟首次执行时间,第三个参数表示闹钟两次执行的间隔时间,第四个参数表示闹钟响应动作。类似JAVA的Timer里面scheduleAtFixedRate(TimerTask task, long delay, long period):在反复执行一个task的计划时,每一次 执行这个task的计划执行时间在最初就被定下来了,也就是scheduledExecutionTime(第n次)=firstExecuteTime +n

深入理解 intent (1)

拜拜、爱过 提交于 2019-12-04 16:08:27
一. 使用Internt 连接activity 1.创建 intent 用下面的构造方法 Intent.Intent(Context packgeContext ,Class <?> cls ); 或者先构造 一个未指向 的intent,再用下面方法 Intent.getClass(Context packageContext,Class <?> cls); 2.调用 Intent Activity.startActivity( Intent intent); 如果 想下一个Activity时返回原来 的activity ,则 Activity.startActivityForResult (Intent intent ,int requestCode ); note :应用中的activity都要在 manifest文件中注册。 二. 使用activity传递数据 1. 在第一个activity中存入 数据 , Intent.putExra( String name ,String value ); name value 类似于键 值对应的,如HashMap ,name =key。不过这里它们的类型是Bundle(专门为activity面设计 的,本质 是 HashMap的再封装。 2.在目标activity中取出intent中的值 先用getIntent()