- 浏览: 6352381 次
- 性别:
- 来自: 一片神奇的土地
文章分类
- 全部博客 (745)
- JQuery (25)
- JS (33)
- 数据库 (59)
- Java基础 (56)
- JSON (8)
- XML (8)
- ireport (7)
- 设计模式 (10)
- 心情 (14)
- freemarker (1)
- 问题 (15)
- powerdesigner (2)
- CSS (15)
- DWR (4)
- tomcat (16)
- Hibernate (12)
- Oracle (7)
- Struts (7)
- Spring (34)
- JSP (23)
- 需学习 (64)
- 工具类库 (63)
- Maven (14)
- 笔试题 (34)
- 源码学习 (31)
- 多线程 (39)
- Android (32)
- 缓存 (20)
- SpringMVC (14)
- jQueryEasyUi (12)
- webservice-RPC (13)
- ant (1)
- ASP.NET (10)
- 正则表达式 (3)
- Linux (15)
- JBoss (1)
- EJB (3)
- UML (2)
- JMS (3)
- Flex (8)
- JSTL (2)
- 批处理 (5)
- JVM (16)
- 【工具】 (16)
- 数据结构 (29)
- HTTP/TCP/Socket (18)
- 微信 (1)
- tomcat源码学习 (15)
- Python (30)
- 主机 (2)
- 设计与架构 (19)
- thrift-RPC (2)
- nginx (6)
- 微信小程序 (0)
- 分布式+集群 (12)
- IO (1)
- 消息队列 (4)
- 存储过程 (8)
- redis (9)
- zookeeper (5)
- 海量数据 (5)
最新评论
-
360pluse:
技术更新,战术升级!Python爬虫案例实战从零开始一站通网盘 ...
Python爬虫实战:Scrapy豆瓣电影爬取 -
18335864773:
推荐用 pageoffice 组件生成 word 文件。
JAVA生成WORD工具类 -
jjhe369:
LISTD_ONE 写道起始地址为163.135.0.1 结束 ...
IP地址与CIDR -
baojunhu99:
private final int POOL_SIZE = 5 ...
使用CompletionService获取多线程返回值 -
LovingBaby:
胡说,javascript 运行时是单线程的,event lo ...
Ajax请求是否可以实现同步
一个activity 一个布局文件 不能跨越。
如果你需要使用main2.xml 需要另建activity
需要返回数据或结果的,则使用startActivityForResult (Intent intent, int requestCode),requestCode的值是自定义的,用于识别跳转的目标Activity。跳转的目标Activity所要做的就是返回数据/结果
setResult(int resultCode)只返回结果不带数据
setResult(int resultCode, Intent data)两者都返回!
而接收返回的数据/结果的处理函数是onActivityResult(int requestCode, int resultCode, Intent data),这里的requestCode就是startActivityForResult的requestCode,resultCode就是setResult里面的resultCode
,返回的数据在data里面。
注意,在setResult后,要调用finish()销毁当前的Activity,否则无法返回到原来的Activity
,就无法执行原来Activity的onActivityResult函数,看到当前的Activity没反应。
RESULT_OK和RESULT_CANCELED是系统空间里面的常量,不需要自定义,直接使用就行
。
另外在运行过程中,发现按Back键后,是可以返回RESULT_CANCELED的,看了SDK doc后,原来真的是那样,而且不带有数据的。这意味着,如果你设想在返回RESULT_CANCELED时并返回数据,那么需要截获Back键的事件处理,把原来返回RESULT_CANCELED的核心逻辑copy到事件处理里面。
public class MainActivity extends Activity { static final int CALL_MSG_REQUEST = 0; static final int CALL_BACK_REQUEST = 1; @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == CALL_MSG_REQUEST){ if(resultCode == RESULT_OK){ Bundle bd = data.getExtras(); String name = bd.getString("name2"); Double salary = bd.getDouble("salary2"); TextView txt = (TextView)findViewById(R.id.txtMsg); txt.setText("Activity 1" + "\n名字:" + name + "\n薪水:" + String.valueOf(salary)); }else if (resultCode == RESULT_CANCELED) { Toast.makeText(this, "Send canceled!", Toast.LENGTH_SHORT).show(); } }else if(requestCode == CALL_BACK_REQUEST){ } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView v = (TextView)findViewById(R.id.txtMsg); v.setText("初始Text"); Button btn = (Button)findViewById(R.id.btn1); btn.setText("启动另一个Activity"); btn.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { Intent ten = new Intent(); ten.setClass(MainActivity.this, SkipActivity.class); Bundle bubb = new Bundle(); bubb.putString("name", "ROBBY"); bubb.putDouble("salary", 100d); ten.putExtras(bubb); //startActivity(ten); startActivityForResult(ten, CALL_MSG_REQUEST); } }); } }
其实用startActivity(ten);可以返回,不过返回没带参数而已!
public class SkipActivity extends Activity { Intent ten = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_skip); ten = this.getIntent(); Bundle bd = ten.getExtras(); String name = bd.getString("name"); Double salary = bd.getDouble("salary"); TextView txt = (TextView) this.findViewById(R.id.textSkip); txt.setText("Activity 2" + "\n名字:" + name + "\n薪水:" + String.valueOf(salary)); Button btn = (Button) this.findViewById(R.id.btn2); btn.setText("返回前一个Activity"); btn.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { // 返回参数给启动者 /*Bundle bd = ten.getExtras(); bd.putString("name2", "Robby2"); bd.putDouble("salary2", 120d); ten.putExtras(bd); SkipActivity.this.setResult(RESULT_OK, ten); */ Intent t = new Intent(); Bundle bd = new Bundle(); bd.putString("name2", "Robby2"); bd.putDouble("salary2", 120d); t.putExtras(bd); SkipActivity.this.setResult(RESULT_OK, t); //移上两种情况都可 SkipActivity.this.finish(); } }); } }
activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:id="@+id/layout"> <TextView android:id="@+id/txtMsg" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView> <Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> </LinearLayout>
activity_skip.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/textSkip" /> <Button android:id="@+id/btn2" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> </LinearLayout>
参考:
http://bbs.e800.com.cn/thread-4955-1-1.html
http://my.oschina.net/huangsm/blog/32035
http://blog.csdn.net/lixiang0522/article/details/7824490
本来看起来挺简单,结果自己实际操作起来,问题百出,典型的眼高手低啊,悲催
发表评论
-
选择照片和拍照
2018-06-13 15:31 1669Android拍照或从本地选择图片上传 Android ... -
PullToRefresh的简单使用
2018-05-31 16:06 1300Android下拉刷新控件--PullToRefresh的简 ... -
fragment内嵌fragment之间传值+切换fragment
2018-05-30 11:59 13458跳转: 从一个Fragment跳转到另一个Fragmen ... -
控件使用问题
2018-05-22 09:59 1552TextView最大长度限制,超出部分省略号显示 xml ... -
ViewPager+RadioGroup+TabLayout
2018-05-22 09:38 1124ViewPager: ViewPager 详解(五)-- ... -
网络请求工具类HttpUtils
2018-05-19 21:07 2426代码如下: import android.app.Acti ... -
android排版布局学习
2018-05-18 16:24 3890Android开发学习之路--UI之基本布局 andro ... -
[工具]-Android切图
2018-05-18 14:21 1523切图小科普!聊聊原生APP切图那些事儿 安卓APP设计规 ... -
【Android基础问题】
2018-05-18 13:49 7411、appcompat_v7: appcompat_v7 ... -
WebView使用
2018-05-17 17:42 1200Android:最全面的 Webvie ... -
《第一行代码》服务+AsyncTask+定时任务
2018-04-23 09:45 179014、服务 服务(Service)是 Androi ... -
《第一行代码》通知+接收拦截发送短信
2018-04-23 09:44 170613、通知 在活动里 ... -
《第一行代码》内容提供器
2018-04-20 16:08 129112、内容提供器 内容提供器(Content Pro ... -
《第一行代码》数据存储
2018-04-20 16:07 69211、数据存储 将数据存储到文件中 ope ... -
《第一行代码》广播
2018-04-20 15:34 100010、广播接收器(Broadcast Receive ... -
《第一行代码》控件、布局、碎片
2018-04-20 14:40 9208、控件 TextView: a ... -
【Android studio配置和错误】
2018-04-20 14:21 4053Gradle是一个基于Apache Ant和Apache ... -
《第一行代码》基础总结
2016-07-12 22:07 1918activity的生命周期—— ... -
《第一行代码》扩展总结
2016-06-29 15:28 1342Android更新UI的两种方法——handler与run ... -
Android快速开发工具类
2016-01-21 14:56 1999来源:http://blog.csdn.net/lmj62 ...
相关推荐
在Android开发中,启动应用程序并快速跳转到指定的Activity是一项常见的需求,特别是在实现自定义启动页或者处理特定启动逻辑时。本知识点将详细讲解如何在Android应用启动时实现这一功能。 首先,我们需要理解...
在这个方法中,我们可以通过调用`startActivityForResult()`启动新的Activity,并在Activity的结果回调中处理滑动事件。 其次,为了使Activity能够像Fragment一样在ViewPager中滑动,我们需要处理Activity的布局和...
总结,Activity跳转是Android开发中不可或缺的部分,理解Intent、启动模式以及返回结果的处理对于构建复杂的Android应用至关重要。通过熟练掌握这些知识点,开发者可以更自如地控制应用的导航流程,为用户提供更好的...
### Android 中从Activity1跳转到Activity2再回到Activity1所经历的生命周期 在Android开发过程中,理解Activity的生命周期对于管理界面状态、处理用户交互以及响应系统事件至关重要。本文将详细解析从一个Activity...
Activity之间的跳转是Android应用中常见的操作,用于实现用户在不同界面间的导航。下面将详细介绍如何在Android中实现Activity之间的跳转,并探讨相关的知识点。 1. **Intent的使用** Intent是Android中实现组件间...
例子中可以从mainactivity跳转到next01activity、next02activity、next03activity、next04activity 也可以从next01activity、next02activity、next03activity、next04activity中跳转回到mainactivity
在Android应用开发中,Activity页面跳转特效是一个增强用户体验的重要环节。通过巧妙地设计和实现这些特效,可以为用户带来更加生动和有趣的交互体验。在Android 5.0(Lollipop)及更高版本中,系统引入了Transition...
本文详细介绍了如何在Android应用程序中实现两个`Activity`之间的跳转。通过创建`Intent`对象,并设置其要启动的目标`Activity`,再通过调用`startActivity()`方法,即可轻松实现`Activity`间的跳转。此外,还可以...
理解Activity的跳转和ListView的使用是Android开发中至关重要的技能。在这个主题中,我们将深入探讨如何通过Intent和Bundle实现Activity间的参数传递和跳转,以及如何在ListView中设置Item的点击事件处理。 首先,...
假如说有一个activity A,在A中跳转到Activity B, 然后在B中跳转到Activity C中,最后要在C中把activity A,B,C都关掉。 首先有一个Activity A,A中有一个Button,点击这个Button会跳到Activity B中去,但会拿到...
启动模式在Activity跳转中起着重要作用。Android提供四种默认的启动模式:标准模式(standard)、单实例模式(singleInstance)、单任务模式(singleTask)和单栈顶模式(singleTop)。标准模式是最常见的,每次启动...
在Android应用开发中,Activity是构成应用程序的...在进行Activity跳转时,应确保正确管理资源,尤其是涉及多媒体元素时,要防止资源冲突和异常情况的发生。通过合理的生命周期管理,可以保证应用的稳定性和用户体验。
Activity A跳转Activity B,再按返回键,A、B的生命周期执行顺序是什么? 当听到这个题目的时候,我得意地笑了笑,对于Activity的生命周期已经记熟的我,心想,为什么不直接问Activity的生命周期呢?于是想当然的说...
以上是Android中Activity跳转的主要方式,每个方法都有其特定的应用场景。在实际开发中,开发者应根据需求选择合适的方式进行Activity间的交互。通过理解并熟练掌握这些方法,你可以构建更加流畅、功能丰富的Android...
总结,"四个Activity的跳转"实例涵盖了Android开发中Activity间的基本交互,包括Intent的使用、Activity的启动和关闭,以及数据的传递和返回。对于初学者来说,这是一个很好的起点,有助于理解Android应用的基本架构...
### Activity跳转的四种方式详解 #### 一、标准模式(Standard) 标准模式是Activity的默认启动模式。当一个新的Activity启动时,系统会为它创建一个新的实例,并压入任务栈的顶部。在这种模式下,每次启动...
在Activity跳转中,Intent起着至关重要的作用。 1. 创建Intent 在Java代码中,创建Intent对象通常有两种方式: ```java // 方式一:通过指定目标Activity的Class Intent intent = new Intent(this, TargetActivity....
为了返回上一个Activity,可以使用finish()方法关闭当前Activity,或者使用startActivityForResult()进行有结果的跳转,并在目标Activity中通过setResult()设置返回值,然后在源Activity的onActivityResult()方法中...
在Activity跳转中,Intent起着至关重要的作用。创建一个Intent对象并指定目标Activity的类名(ComponentName)或通过Intent过滤器(Action、Data、Category)来启动另一个Activity。 1. 显式Intent:通过...
Activity外跳转则是指从ActivityGroup中的子Activity跳转到不在该组内的其他Activity。在这种情况下,通常使用标准的`startActivity()`方法,但需要注意的是,由于子Activity是在ActivityGroup内部,所以需要额外的...