Activity之间数据交流(onActivityResult的用法)
来源:互联网 发布:基站定位数据库 编辑:程序博客网 时间:2024/09/21 08:59
主要功能:
在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理。这样的数据交流就要用到回调函数onActivityResult。
<1>startActivityForResult(Intent intent, intrequestCode);
第一个参数:一个Intent对象
第二个参数:如果>= 0,当Activity结束时requestCode将归还在onActivityResult()中。以便确定返回的数据是从哪个Activity中返回
<2>onActivityResult(intrequestCode, int resultCode, Intent data)
第一个参数:这个整数requestCode提供给onActivityResult,是以便确认返回的数据是从哪个Activity返回的。
这个requestCode和startActivityForResult中的requestCode相对应。
第二个参数:这整数resultCode是由子Activity通过其setResult()方法返回。
第三个参数:一个Intent对象,带有返回的数据。
<3>setResult(intresultCode, Intent data)
调用这个方法把Activity想要返回的数据返回到父Activity
第一个参数:当Activity结束时resultCode将归还在onActivityResult()中,一般为RESULT_CANCELED , RESULT_OK。
第二个参数:一个Intent对象,返回给父Activity的数据。
本实例一共有三个Activity。点击飞往火星跳转到otherActivity,把地球带给火星的消息显示在otherActivity中。点击返回地球时把火星带给地球的消息传到主Activity.
同理:
点击飞往月球跳转到thirdActivity,把地球带给月球的消息显示在thirdActivity中。点击返回地球时把月球带给地球的消息传到主Activity.
具体实现:
主Activity
package com.intent;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class OnActivityResultActivity extends Activity{private Buttonbutton= null;private Buttonbutton1= null;private TextViewtext= null;private static final intMars= 0;private static final intMoon= 1;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);text = (TextView) findViewById(R.id.text);button = (Button) findViewById(R.id.button);button1 = (Button) findViewById(R.id.button1);button.setOnClickListener(new MyOnClickListener());button1.setOnClickListener(new MyOnClickListener());}class MyOnClickListener implements OnClickListener{ public void onClick(View v) { switch(v.getId()) { case R.id.button:Intent intent = new Intent(OnActivityResultActivity.this, OtherActivity.class);String content = "地球来的消息:你好,我是来自地球上的小老鼠。我好想去你们的火星呀";intent.putExtra("FromEarth", content);startActivityForResult(intent, Mars); break; case R.id.button1:Intent intent1 = new Intent(OnActivityResultActivity.this, ThirdActivity.class);String content1 = "地球来的消息:你好,我是来自地球上的小老鼠。我好想去你们月球";intent1.putExtra("FromEarth", content1);startActivityForResult(intent1, Moon);break; }}}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data){switch (requestCode){case Mars:Bundle MarsBuddle = data.getExtras();String MarsMessage = MarsBuddle.getString("FromMars");text.setText(MarsMessage);break;case Moon:Bundle MoonBuddle = data.getExtras();String MoonMessage = MoonBuddle.getString("FromMoon");text.setText(MoonMessage);break;}}}
package com.intent;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;public class OtherActivity extends Activity{private Buttonbutton= null;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.other);Intent EarthIntent = this.getIntent();String EarthMessage = EarthIntent.getStringExtra("FromEarth");button = (Button) findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v){Intent intent = new Intent(OtherActivity.this, OnActivityResultActivity.class);String passString = "火星来的消息:Hello,我是火星的Jack,非常高兴你能来火星";intent.putExtra("FromMars", passString);setResult(RESULT_OK, intent);finish();}});TextView textView = (TextView) findViewById(R.id.othertext);textView.setText(EarthMessage);}}
package com.intent;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;public class ThirdActivity extends Activity{private Buttonbutton= null;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.third);Intent EarthIntent = this.getIntent();String EarthMessage = EarthIntent.getStringExtra("FromEarth");button = (Button) findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v){Intent intent = new Intent(ThirdActivity.this, OnActivityResultActivity.class);String passString = "月球来的消息:Hello,我是月球的Lucy,非常欢迎你来月球";intent.putExtra("FromMoon", passString);setResult(RESULT_OK, intent);finish();}});TextView textView = (TextView) findViewById(R.id.thirdtext);textView.setText(EarthMessage);}}
<?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" > <Button android:id="@+id/button" android:layout_width="278dp" android:layout_height="wrap_content" android:text="@string/Button" /> <Button android:id="@+id/button1" android:layout_width="286dp" android:layout_height="wrap_content" android:text="@string/Button1" /> <TextView android:id="@+id/text" android:layout_width="295dp" android:layout_height="0dp" android:layout_weight="0.19" android:text="TextView" /></LinearLayout>
<?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" > <Button android:id="@+id/button" android:layout_width="268dp" android:layout_height="wrap_content" android:text="@string/Button2" /> <TextView android:id="@+id/othertext" android:layout_width="306dp" android:layout_height="0dp" android:layout_weight="0.05" android:text="TextView1" /></LinearLayout>
<?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" > <Button android:id="@+id/button" android:layout_width="302dp" android:layout_height="wrap_content" android:text="@string/Button3" /> <TextView android:id="@+id/thirdtext" android:layout_width="296dp" android:layout_height="0dp" android:layout_weight="0.09" android:text="TextView2" /></LinearLayout>
- Activity---Activity之间数据交流(onActivityResult的用法)
- Activity---Activity之间数据交流(onActivityResult的用法)
- Activity之间数据交流(onActivityResult的用法)
- Activity之间数据交流(onActivityResult的用法)
- Activity之间数据交流(onActivityResult的用法)
- Android--Activity之间数据交流(onActivityResult的用法)
- Activity之间数据交流(onActivityResult的用法)
- Activity之间数据交流(onActivityResult的用法)
- Activity之间数据交流(onActivityResult的用法)
- Android进阶2之Activity之间数据交流(onActivityResult的用法)
- Android Activity之间数据交流(onActivityResult的用法) 附打包代码
- Android进阶2之Activity之间数据交流(onActivityResult的用法)
- Ionic开发过程记录: Activity之间数据交流(onActivityResult的用法)
- Android进阶2之Activity之间数据交流(onActivityResult的用法)
- onActivityResult的用法-Activity间回调传递数据
- Activity之间数据传递onActivityResult
- startActivityForResult ,onActivityResult,Activity之间传数据
- onactivityresult在activity中数据的传递
- codeforces 112APetya and Strings(字符串水题)
- Acdream1084 寒假安排 求n!中v因子个数
- hdu 4685 Prince and Princess(匈牙利算法 连通分量)
- OCP 1Z0 051 152
- Sqlplus查看Oracle版本
- Activity之间数据交流(onActivityResult的用法)
- C#类型基础
- ThreadLocal类的理解
- 设计模式(二)——单例模式(Singleton)
- x86下的C函数调用惯例
- NYOJ95众数问题
- javax.servlet.jsp.JspException cannot be resolved to a type
- JDBC中prepareStatement 和Statement 的区别
- Android 添加library的时候出错添加不上