1、通常情况下我们利用startActivity() 这个方法来开启一个activity,这样做的结果是不能够从后一个activity 把值给传回来,利用startActivityForResult()这个方法,我们可以把值给传回来。下面就是一个小Demo的使用:
package com.example.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startActivityForResult(new Intent(this, B.class), 0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
String name = data.getStringExtra("name");
}
}
程序中:onActivityResult() 方法用来接收后面activity 传过来的值。
package com.example.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class B extends Activity {
private Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.btn1 = (Button) this.findViewById(R.id.btn1);
this.btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent data = new Intent();
data.putExtra("name", "name1");
setResult(0, data);
finish();
}
});
}
}
在 B 中我们可以利用setResult() 这个方法来给它设置值。
本文介绍如何通过startActivityForResult()方法在Android应用中实现两个Activity之间的数据传递,包括在BActivity中设置数据并在MainActivity中接收数据的过程。
9210

被折叠的 条评论
为什么被折叠?



