-
安卓activity之间互相通信的问题
2016-12-31 15:12:51大侠,如果我想在activity A中启动activity B,然后activity A还能向B发送状态信息,B再根据A发送来的状态决定自身的变化,比如A发送退出命令,B接收之后就finish,这样的想法能实现吗? 之所有有这样的需求是...大侠,如果我想在activity A中启动activity B,然后activity A还能向B发送状态信息,B再根据A发送来的状态决定自身的变化,比如A发送退出命令,B接收之后就finish,这样的想法能实现吗?
之所有有这样的需求是因为,比如在登录的时候,考虑到网络延迟的关系,在用户点按钮时,我想要出现一个loading的界面,覆盖在登录界面上面,然后当服务端返回成功,loading的那个界面就变成一个对号√的图片,失败就变成一个叉×的图片,并且短暂停留之后消失,这样应该怎么样实现呢? -
安卓Activity之间的通信问题
2013-10-01 17:20:03主Activity是设置界面,程序要实现从主Activity有三个按钮,分别可进入三个不同的子Activity,这三个子Activity里都有一个文本输入框,当从子Activity返回时,希望得到回传回来的值。 问题就是,如果是一个页面还... -
安卓activity之间的数据传递
2015-01-12 18:16:11Intent可以理解为不同组件通信的媒介或者信使。 Intent可以启动一个Activity,也可以启动一个Service,还可以发起一个广播Broadcast。 组件名称 方法名称 Activity startActivity...1.Intent和Bundle
Intent可以理解为不同组件通信的媒介或者信使。
Intent可以启动一个Activity,也可以启动一个Service,还可以发起一个广播Broadcast。
组件名称
方法名称
Activity
startActivity()
startActivityForResult()
Service
startService()
bindService()
Broadcasts
sendBroadcast()
sendOrderedBroadcast()
sendStickyBroadcast()
Intent对象由以下六个部分组成:
Component name
Action
Data
Category
Extras
Flags
范例
(1)新建一个bundle类
Bundle mBundle = new Bundle();(2)bundle类中加入数据(key -value的形式,另一个activity里面取数据的时候,就要用到key,找出对应的value)
mBundle.putString("Data", "data from TestBundle");
(3)新建一个intent对象,并将该bundle加入这个intent对象
Intent intent = new Intent();
intent.setClass(TestBundle.this, Target.class);
Bundle mBundle = new Bundle();
mBundle.putString("Data", "data from TestBundle");//压入数据
intent.putExtras(mBundle);
startActivity(intent);
(4)
Bundle bundle = getIntent().getExtras();//得到传过来的bundle
String data = bundle.getString("Data");//读出数据2.运用startActivityForResult()
请求码和结果码请求码的作用:startActivityForResult(Intent intent, int requestCode)的第二个参数为请求码。请求码的值是根据业务需要由自已设定,用于标识请求来源例如:一个Activity有两个按钮,点击这两个按钮都会打开同一个Activity,不管是那个按钮打开新Activity,当这个新Activity关闭后,系统都会调用前面Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。这个时候,我们就需要判断是按钮打开了Activity,我们可以这样做首先,在startActivityForResult时候设置请求码的数值button1.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
startActivityForResult (new Intent(MainActivity.this, NewActivity.class), 1);}
});
button2.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
startActivityForResult (new Intent(MainActivity.this, NewActivity.class), 2);}
});
接着,在onActivityResult中判断请求码做出不同的操作:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode){
case 1:
//来自按钮1的请求,作相应业务处理
case 2:
//来自按钮2的请求,作相应业务处理
}
}结果码的作用:
在一个Activity中,可能会使用startActivityForResult()方法打开多个不同的Activity处理不同的业务,当这些新Activity关闭后,系统都会调用前面Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。为了知道返回的数据来自于哪个新Activity,在onActivityResult()方法中可以这样做(ResultActivity和NewActivity为要打开的新Activity):
public class ResultActivity extends Activity {
.....
ResultActivity.this.setResult(1, intent);
ResultActivity.this.finish();
}
public class NewActivity extends Activity {
......
NewActivity.this.setResult(2, intent);
NewActivity.this.finish();
}
public class MainActivity extends Activity { // 在该Activity会打开ResultActivity和NewActivity
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(resultCode){
case 1:
// ResultActivity的返回数据
case 2:
// NewActivity的返回数据
}
}
}3.重载onActivityResult
如果想在Activity中得到新打开Activity 关闭后返回的数据,需要使用系统提供的startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,新的Activity 关闭后会向前面的Activity传回数据,为了得到传回的数据,必须在前面的Activity中重写onActivityResult(int requestCode, int resultCode, Intent data)方法。 -
安卓基础之Activity之间的通信1.0:最简单的通信
2018-04-07 15:39:40一、创建第一个Activity.java文件import android.view.View; import com.example.administrator.myapplication.R; public class Intent1Activity extends ActionBarActivity { @Override protected void ...一、创建第一个Activity
.java文件
import android.view.View; import com.example.administrator.myapplication.R; public class Intent1Activity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_intent1); } public void intent(View view) { /* 通过类名启动 缺点:容易暴露要启动的类名 */ Intent inten =new Intent();//实例化一个intent对象 inten.setClass(this,Intent2Activity.class);//设置调转的界面 startActivity(inten);//启动 }
}
布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.administrator.myapplication.com.intent.Intent1Activity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="启动第二个activity"
android:onClick="intent"
/> </LinearLayout>
二、创建第二个Activity
第二个布局文件我们只需要对布局文件进行编码即可,做个最单的页面
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.administrator.myapplication.com.intent.Intent2Activity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="这是第二个activity" /> </LinearLayout>
-
ANDROID安卓activity与fragment,activity之间互相传值(四)
2016-03-17 11:04:09之前,关于传值出了三篇文章,但是忽略了一个至关重要的内容,也是传值中很常用的一个,就是回掉传值activity的启动回掉,方法,这个传值在界面通信之间起着至关重要的作用,下面直接看代码 FirsrActivity中 Intent...之前,关于传值出了三篇文章,但是忽略了一个至关重要的内容,也是传值中很常用的一个,就是回掉传值activity的启动回掉,方法,这个传值在界面通信之间起着至关重要的作用,下面直接看代码
FirsrActivity中
Intent intent = new Intent(FirsrActivity.this,SecondActivity.class); startActivityForResult(intent,REQUEST_CODE);
这样用来启动SecondActivity,startActitvityForResult中的第一个参数为启动意图,第二个参数为请求编码,
SecondActivity中
//跳回 Intent intent = new Intent(); intent.putStringArrayListExtra("cMeMber", memberList); setResult(RESULT_CODE,intent); finish();
此处是SecondActivity中的设置回传Intent设置 即setResult,第一个参数即是回传的参数,第二个参数是intent.即可以传回多个属性放置在INTENT中,放置bundler也可以,即万物都可以传。
然后继续是FirstActivity中的代码,
protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(data!=null) { if (requestCode == 1) { t_Adress.setText(data.getStringExtra("DeatailPlace")); } else if (requestCode==2 && resultCode == 2) { OppenentName = data.getStringExtra("cOppenentName"); OppenentID = data.getStringExtra("cOppenentID"); m_tvShowName.setText("" + data.getStringExtra("cOppenentName")); }else if(requestCode == 3) { requestAddMatchBaseBean.cTeamID = data.getStringExtra("cMyTeamID"); m_tvShowMyTeam.setText(""+data.getStringExtra("cMyTeamName")); m_tvShowMyMember.setText("已通知 1 人"); m_tvShowMyMemberTab.setTextColor(Color.parseColor("#e8e8e8")); m_tvShowMyMember.setTextColor(Color.parseColor("#e8e8e8")); }else if(requestCode == 4) { memberlist = new ArrayList<>(); memberlist = data.getStringArrayListExtra("cMeMber"); m_tvShowMyMember.setText("已通知 " + memberlist.size()+" 人"); } } super.onActivityResult(requestCode, resultCode, data); }
这边是传回的值,是在OnActivityResult中,接受,并且做判断,data既是回传的intent,需要判断是否为空,不然的话容易出错而且需要判断,resultcode是多少,才能够接受使用
-
ANDROID安卓activity与fragment,activity之间互相传值(三)
2016-02-26 14:41:20这篇,主要写的是,fragment与fragment直接的互相传值,互相通信,fragment必须依赖于activty,而activity用来管理fragment是通过fragmentManager来管理的,所以这样一来,用来传值互相通信的方便就变得非常明了了。... -
Android(Fragment和Activity之间通信)
2015-09-25 12:36:00Fragment的使用可以让我们的应用更灵活的适配各种型号的安卓设备,但是对于Fragment和Activity之间的通信,很多朋友应该比较陌生,下面我们就通过一个实例来看一看如何实现。 一、Activity->Fragment传递数据 1... -
安卓开发------Activity之间的跳转以及基础通信
2020-03-04 17:08:10在一个完整的应用之间,会存在多个Activity,这些Activity之间避免不了要进行跳转以及通信(相互至之间传递数据); Activity之间的跳转 1.跳转到下一个新的Activity Intent intent =new Intent(TestActivity.this,... -
Android进程间通信之Service和Activity之间的通信
2019-08-02 14:29:24安卓项目开发中经常会遇到Service和Activity之间通信的情况,Service的数据更新,通知Activity中UI更新。 Service和Activity之间的通信主要有三种: bindService(); 广播Broadcast; hander机制 一、利用hander... -
Android实战简易教程-第五十二枪(Fragment和Activity之间通信)
2015-09-04 19:19:34Fragment的使用可以让我们的应用更灵活的适配各种型号的安卓设备,但是对于Fragment和Activity之间的通信,很多朋友应该比较陌生,下面我们就通过一个实例来看一看如何实现。一、Activity->Fragment传递数据1.main.... -
Android实战简易教程<五十二>(Fragment和Activity之间通信)
2015-09-26 11:19:40Fragment的使用可以让我们的应用更灵活的适配各种型号的安卓设备,但是对于Fragment和Activity之间的通信,很多朋友应该比较陌生,下面我们就通过一个实例来看一看如何实现。 一、Activity->Fragment传递数据 1.... -
Android(安卓)应用开发技术 Android(安卓)应用开发技术 37 Service服务和Activity通信.pptx
2020-09-23 07:19:49学习目标;Activity和Service之间要通信;Activity绑定Service;Service中的处理;Activity获取Service的处理情况;任务实施;知识点小结;感谢您的学习 -
两个正在运行的activity之间的通信
2012-03-29 13:33:29http://blog.sina.com.cn/s/blog_7e3a44200100ssln.html ... 转自安卓巴士开发者 在android应用程序开发的时候,从一个activity启动另一个activity并传递一些数据到新的activity非 -
Android笔记只Activity与Fragment之间通信
2018-07-04 12:49:48反思的结果就是,这小半年我没多少进步,无论是在RN还是安卓原生开发的知识技术方面,都没有实质上的突破,以至于没有新的值得我记录为博客的干货。 俗话说,学海无涯,不进则退。因为这大半年基本上都从事着RN的... -
安卓线程间通信--管道
2019-10-02 19:48:35安卓这边线程通信的话,通常情况下我用到的就是handler和广播,基本所有问题都能解决了。今天去面试,面试官问到了这个问题,结果他说这两种方式的效率太低,他们使用的是管道流,emmmmmm,表示一脸懵逼。 回来查了... -
安卓进程间通信
2015-03-11 21:17:47由于android系统中应用程序之间不能共享内存。因此,在不同应用程序之间交互数据(跨进程通讯)就稍微麻烦一些。在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件:... -
安卓跨应用调用Activity,Service并进行通信,AIDL的应用
2015-10-21 11:21:11刚开始学习安卓的时候学过怎么跨应用启动activity和servicer,但只是会启动而已,对于他们之间的通信并没有做更深入的了解。偶尔接触到一个名词叫AIDL,在网上查阅资料的时候发现他的全称为android interface ... -
安卓中实体类与活动之间的通信
2020-01-12 11:36:17之前,我曾经遇到一个问题,在写recyclerview的时候需要在adapter里面调用某个activity中的方法,我尝试了各种方法都没有成功。 解决: 我记得之前看过一些实战视频,里面的讲师曾说过activity就是context,所以其实... -
Android安卓——Intent通信(1)
2017-11-05 22:15:27本次学习在介绍了Intent的作用之后,主要讲解怎么在Activity中使用Intent,比如:Activity的显示跳转,隐式跳转,父子Activity中传递数据等。 一、Intent简介 Intent也可称为一个在不同组件之间传递的消息,这... -
安卓四大组件之Activity
2014-05-04 20:59:46Activity 是 Android 四大组件之一,它用于展示界面。 Activity 是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。 Activity 中所有操作都与用户密切相关...Activity 之间通过 Intent 进行通信 -
安卓开发之activity详解(sumzom)
2019-10-07 19:35:52app中,一个activity通常是指的一个单独的... 那么activity之间如何进行通信呢?他们是通过intent进行通信以及切换。Intent有两个重要部分(动作传递,数据传递); Ø神马是Activity? activity是四大组件,代表... -
安卓进程间通信的四种方式(含案例)
2017-09-21 00:26:13由于应用程序之间不能共享内存。在不同应用程序之间交互数据(跨进程通讯),在android SDK中提供了4种用于跨...这4种方式正好对应于android系统中4种应用程序组件:Activity、Content Provider、Broadcast和Service。 -
Android组件之间通信
2016-11-07 14:49:29我们首先梳理下一般我们在安卓中不同组件之间通信有哪些方式 (Tips:以下讨论除了文件存储和ContentProvider等,一般都是指在同一进程内通信,如果要实现跨进程的通信,还需要借助Messenger或者AIDL等技术,后续还... -
安卓基础(组件、activity生命周期)
2019-05-24 18:26:06activity之间通过inter进行通信 service(服务) 用户在后台完成用户指定的操作 service分两种 started(启动):当应用程序组件调用startService()方法启动服务时,服务处于started状态 bound(绑定):当应用程序... -
简析安卓开发之activity(sumzom)
2015-10-17 10:12:53那么activity之间如何进行通信呢?他们是通过intent进行通信以及切换。Intent有两个重要部分(动作传递,数据传递); Ø神马是Activity? activity是四大组件,代表者用户可操作界面,可与用户
-
概率论与数理统计(龙永红)课后答案.pdf
-
河北工业大学《建筑力学》期末考试试卷.pdf
-
第二节课 物联网通信技术之git/github,物联网发展历史
-
304. 二维区域和检索 - 矩阵不可变
-
使用vue搭建微信H5公众号项目
-
ios - 用UICollectionView实现瀑布流详解
-
朱老师鸿蒙系列课程第1期-2鸿蒙系统Harmonyos源码架构分析
-
线性结构-栈
-
2021年 系统架构设计师 系列课
-
genProtobuf.zip
-
大学生《计算机网络》期末考试试卷整理(含答案).pdf
-
leetcode tree 654 最大二叉树
-
Information Transfer
-
大学生《数据建模方法》14年期末考试试卷(含答案).pdf
-
2021年 系统分析师 系列课
-
2016年湖南大学《高数A2》两套期中考试试卷.pdf
-
MySQL 高可用工具 heartbeat 实战部署详解
-
C/C++反汇编解密
-
工程制图期末考试试题.pdf
-
智能停车场云平台(附vue+SpringBoot前后端项目源码)