基于startActivityForResult方法处理两个Activity之间数据传递问题_Android

废话不多说了,直接给大家贴代码了。

package com.example.testactivityresquest;
 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.Toast;
 public class MainActivity extends Activity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     Button btn = (Button) findViewById(R.id.button);
     btn.setOnClickListener(new OnClickListener() {
       @Override
       public void onClick(View v) {

         Intent intent = new Intent(MainActivity.this, Activityb.class);
         int[] nums = { , };
         intent.putExtra(Changliang.KEY, nums);
         //有别于startActivity,如果启动的其他Activity多了以后。相当于定一个特定KEY值,返回根据KEY值返回。
         startActivityForResult(intent, Changliang.requestCode);

       }
     });
   }
  //Activityb传回来的数据在这个方法中获取
   @Override
   protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     int s = data.getIntExtra(Changliang.Activity_b_KEY, );

     Toast.makeText(getApplicationContext(), "传递两个数得到的和是:" + s, ).show();

   }
 }
 package com.example.testactivityresquest;
 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.Toast;
 public class Activityb extends Activity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activityb);
     Intent intent = this.getIntent();
     int[] n = intent.getIntArrayExtra(Changliang.KEY);
     final int nums = n[] + n[];
     Toast.makeText(this, n[] + " " + n[], ).show();
     Button btn = (Button) findViewById(R.id.button);
     btn.setOnClickListener(new OnClickListener() {
       @Override
       public void onClick(View v) {
         Intent intent = new Intent(Activityb.this, MainActivity.class);
         intent.putExtra(Changliang.Activity_b_KEY, nums);
         // 将数据根据特定键值的意图事件导入
         Activityb.this.setResult(Changliang.requestCode, intent);
         //关闭后返回主Activity
         Activityb.this.finish();
       }
     });
   }
 }
package com.example.testactivityresquest;
public class Changliang {
public static final String KEY="key";
public static final String Activity_b_KEY="key1";
public static final int requestCode=1987;
}

xml文件

 <RelativeLayout 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:background="#ff" >
   <Button
     android:id="@+id/button"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentTop="true"
     android:layout_centerHorizontal="true"
     android:layout_marginTop="dp"
     android:text="启动Activityb" />
 </RelativeLayout>
 <?xml version="." encoding="utf-"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:background="#ff"
   android:orientation="vertical" >
   <Button
     android:id="@+id/button"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="返回Activity" />
 </LinearLayout>

别忘在AndroidManifast中注册activityb。

运行效果图:

startActivityForResult与startActivity的不同之处在于:

1、startActivity( )

仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( )。

2、startActivityForResult( )

可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity,而当这个Text2Activity调用了finish()方法以后,程序会自动跳转回T1Activity,并调用前一个T1Activity中的onActivityResult( )方法。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索startActivityForResult
Activity数据传递
startactivityresult、startresultactivity、android 传递activity、activityresult、activity setresult,以便于您获取更多的相关知识。

时间: 2024-09-30 10:34:29

基于startActivityForResult方法处理两个Activity之间数据传递问题_Android的相关文章

基于startActivityForResult方法处理两个Activity之间数据传递问题

废话不多说了,直接给大家贴代码了. package com.example.testactivityresquest; 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基于Intent实现Activity之间数据传递的方法_Android

本文实例讲述了Android基于Intent实现Activity之间数据传递的方法.分享给大家供大家参考,具体如下: MainActivity: package com.test.intentdemo; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.Menu; import andro

事件-android surfaceview 和activity之间数据传递

问题描述 android surfaceview 和activity之间数据传递 想实现一个功能 就是在mainActivity中放置一个surfaceview和一个Textview 在surfaceview中添加点击onTouch事件 每次点击 让自己定义的surfaceview的变量 step加一 并时时在mainActivity的TextView中更新step的显示 不知道问题有没有描述清楚 就是想在一个view中时时显示另外一个view中定义的变量 解决方案 public class M

解析activity之间数据传递方法的详解_Android

1  基于消息的通信机制 Intent--------boudle,extra用这种简单的形式,一般而言传递一些简单的类型是比较容易的,如int.string等详细介绍下Intent机制Intent包含两部分:1 目的[action]-------要去到哪里去2 内容[category.data]----------路上带些什么,区分性数据和内容性数据简单数据传递: 复制代码 代码如下: Intent intent = new Intent(LoginActivity.this, MainAct

解析activity之间数据传递方法的详解

1  基于消息的通信机制 Intent--------boudle,extra 用这种简单的形式,一般而言传递一些简单的类型是比较容易的,如int.string等 详细介绍下Intent机制 Intent包含两部分: 1 目的[action]-------要去到哪里去 2 内容[category.data]----------路上带些什么,区分性数据和内容性数据 简单数据传递: 复制代码 代码如下: Intent intent = new Intent(LoginActivity.this, M

Android编程实现两个Activity之间共享数据及互相访问的方法_Android

本文实例讲述了Android编程实现两个Activity之间共享数据及互相访问的方法.分享给大家供大家参考,具体如下: 本人从windows编程转过来学习Android开发,一直在想如果两个Activity之间能够像C#或delphi中的Form一样,可以直接访问其成员(字符.数值.成员对象等),并能调用其公开的方法,那应该比用Intent来传递数据直接方便的多,于是偿试了如下办法,测试基本没有问题,发出来大家讨论一下.本人学习android不久,幼稚的地方希望大家不要见笑 原理:假设有两个Ac

Android编程实现两个Activity之间共享数据及互相访问的方法

本文实例讲述了Android编程实现两个Activity之间共享数据及互相访问的方法.分享给大家供大家参考,具体如下: 本人从windows编程转过来学习Android开发,一直在想如果两个Activity之间能够像C#或delphi中的Form一样,可以直接访问其成员(字符.数值.成员对象等),并能调用其公开的方法,那应该比用Intent来传递数据直接方便的多,于是偿试了如下办法,测试基本没有问题,发出来大家讨论一下.本人学习android不久,幼稚的地方希望大家不要见笑 原理:假设有两个Ac

【ANDROID游戏开发之五】游戏注册界面DEMO-实现两个ACTIVITY之间的切换与数据交互!

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/301.html ----------------------- 『很多童鞋说我的代码运行后,点击home或者back后会程序异常,如果你也这样遇到过,那么你肯定没有仔细读完Himi的博文,第十九篇Himi专门写了关于这些错误的原因和解决方法,这里我在博客都补充说明下,省的童鞋们总疑惑这一块:请点击下面联系进入阅读:

切换不刷新-Android 两个activity之间跳转不刷新怎么实现

问题描述 Android 两个activity之间跳转不刷新怎么实现 两个activity中布局类似,都有两个listview,listview可以点击,我现在设置的是两个一样的xml,两个类似的activity 用intent进行跳转,但这样切换会重新刷新,如何实现不刷新切换.请大神细讲 !!! 之前想用Fragment的方法 来隐藏添加控件 但是由于自己不太懂 一个类既要继承Fragment又要继承activity 不能解决 所以被搁置了 并且这个方法需要改动很多 太麻烦 我看到有些帖子有说