易采站长站为您分析基于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.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;
}










