startActivityForResult、setResult的用法

startActivityForResult和setRsult的具体作用: 第一个activity向第二个activity传递数据,第二个activity接受之后做一些处理,,,,然后A又要利用这些数据继续做一些操作,就是利用回传值。

第一个activity的代码:

public class MainActivity extends Activity implements OnClickListener {

private Button but;

private EditText edit;

private TextView text;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

but = (Button) findViewById(R.id.but);

edit = (EditText) findViewById(R.id.edit);

text = (TextView) findViewById(R.id.text);

but.setOnClickListener(this);

}

@Override

public void onClick(View view) {

switch (view.getId()) {

case R.id.but:

Intent main = new Intent(MainActivity.this, OneActivity.class);

main.putExtra("zhi", edit.getText().toString());

MainActivity.this.startActivityForResult(main, 2);

break;

default:

break;

}

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (resultCode == 10) {

String str = data.getExtras().getString("zhi") ;

text.setText("" + str);

}

}

}

第二个activity的代码:

public class OneActivity extends Activity implements OnClickListener {

private String str;

private Button but2 ;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.one);

but2 = (Button) findViewById(R.id.but2) ;

but2.setOnClickListener(this);

}

@Override

public void onClick(View view) {

switch (view.getId()) {

case R.id.but2:

Intent in = getIntent() ;

str = in.getStringExtra("zhi");

in.putExtra("str",str) ;

setResult(10, in);

finish();

break;

default:

break;

}

}

}

requestCode是请求码,resultCode是接受码,可以根据接受码区分是具有哪个操作发送到的请求,利用setResult返回数据,result返回数据的时候携带参数一起发送,

protected void onActivityResult(int requestCode, int resultCode, Intent data)中的data就是返回的数据,所有返回的数据都在这里面,完全可以在这里面取出。

时间: 2024-10-11 19:09:52

startActivityForResult、setResult的用法的相关文章

intent的startActivityForResult()方法

/******************************************************************************************** * author:[email protected]大钟                                                                                                                           * E-m

从零开始学android开发-详细谈谈intent的startActivityForResult()方法

1.两种实现activity跳转的方法 实现activity的跳转主要有两种方法,startActivity()和startActivityForResult();例如activity A跳转到activity B 对于,第一种,是把activity A的数据,通过intent传送到activity B,但是不能返回数据. 关于第一种,可以参考我之前的这篇博文http://blog.csdn.net/conowen/article/details/7270393 2.第二种方法startActi

android onResultActivity不执行原因总结

插一个注意点.在用ArrayAdapter的时候数据那里的类型必须是List<String> 不能是ArrayList<String> 1.在A.Activity中调用startActivityForResult()启动B.Activity后,再B.Activity中调用setResult() 方法后,A.Activity中的onResultActivity将会执行. 但遇到下列问题就不会执行了: startActivityForResult()用法参照:http://www.cn

Android基础篇之Android快速入门--你必须要知道的基础

Android快速入门 1. 搭建开发环境 >解压压缩文件,得到:①Android SDK   (类似于JDK)② Eclipse  ③ADT >配置两个path环境变量:D:\adt-bundle-windows-x86\sdk\platform-tools:D:\adt-bundle-windows-x86\sdk\tools >配置基本的Eclipse的设置: 调整字体大小,字符集,配置android sdk的位置 >创建模拟器: 2. 创建第一个Android项目: Hel

Andorid学习笔记(ADT)-startActivity和startActivityForResult的用法

startActivity的用法 startActivity同时用在Button按钮的onClickListener中 在第一个activity(A)文件中: //写在onClickListener方法中 public void onClick(View v){ Intent intent = new Intent(); //使用Intent类的构造方法创建一个intent对象 intent.setClass(A.this,B.class);//设置intent的意图,表示从A跳转到B star

【数据】Activity数据返回——startActivityForResult()用法详解

上一节我以"计算男女生标准体重"为例详细介绍了如何使用Intent.Bundle等实现不同Activity之间数据的传递问题,本节将仍以"计算男女生标准体重"为例详细介绍如何利用startActivityForResult()实现数据的返回,即从第二页面返回第一页面. 一.目标 如下图,用户在第一个页面填写完数据后点击"计算"按钮,程序跳转到第二个页面,并显示计算结果.在用户点击第二个页面的"返回计算结果"按钮后,程序跳转回第

startActivityForResult和setResult详解

原文:startActivityForResult和setResult详解 startActivityForResult与startActivity的不同之处在于:1.startActivity( ) 仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( ).2.startActivityForResult( ) 可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity,而当这个Text2Activit

startActivityForResult的用法(Android)

1.第一个页面的activity.java package cn.buaa.z1; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; public class MainActivity extends AppCompatA

startActivityForResult 用在于多个Activity之间传值时一些需要注意的用法

requestCode 请求码,即调用startActivityForResult() 传递过去的值 resultCode 结果码,结果码用于标识返回数据来自哪个新Activity 举个例子可能会更明白: 1.在Activity中得到新打开Activity 关闭后返回的数据 package com.google_acmer.activitys; import android.app.Activity; import android.content.Intent; import android.o