在activity之间传递数据
一、简介
二、通过intent传递数据
1、在需要传数据的界面调用
intent.putExtra("data1", "我是fry");方法
//前面是键,后面是值,这个是string
2、在需要接受数据的界面调用bundle获取传递过来的数据即可
Bundle bundle = getIntent().getExtras();
String data1=bundle.getString("data1");
如果是string就getString(),int就getString(),什么数据类型的方法都有
3、实例
需要传数据的界面调用
intent.putExtra("data1", "我是fry");
需要接受数据的界面
Bundle bundle = getIntent().getExtras();
String data1=bundle.getString("data1");
data1里面的内容就是:"我是fry"
三、实例
结果图
原理:
在MainActivity页面创建数据,然后用intent.putExtra方法将数据传递给Activity01页面
代码
activityDataSend.MainActivity
1 package activityDataSend;
2
3
4
5
6
7 import com.example.activityDataSend.R;
8
9 import android.app.Activity;
10 import android.content.Intent;
11 import android.content.Loader;
12 import android.os.Bundle;
13 import android.view.View;
14 import android.view.View.OnClickListener;
15 import android.widget.Button;
16
17
18
19 public class MainActivity extends Activity{
20 private Button btn_openActivty;//创建一个button对象
21 protected void onCreate(Bundle savedInstanceState) {
22 super.onCreate(savedInstanceState);//父类操作
23 setContentView(R.layout.activity_main);//引入名为activity_main的界面
24 btn_openActivty=(Button) findViewById(R.id.btn_openActivity);//找id为btn_openActivity的button
25 btn_openActivty.setOnClickListener(new OnClickListener() {//设置button点击监听
26
27 @Override
28 public void onClick(View v) {//onclick事件
29 // TODO Auto-generated method stub
30 Intent intent=new Intent();//初始化intent 31 intent.setClass(MainActivity.this,Activity01.class);//连接 32 //下面这句话用于intent在activity之间传输data 33 intent.putExtra("data1", "我是fry");//前面是键,后面是值,这个是string 34 intent.putExtra("data2", 0.2);//这个是double 35 //传递对象,serializable序列化方式 36 testClass1_serialize class1=new testClass1_serialize("fry1",21); 37 intent.putExtra("data3_obj", class1); 38 39 //传递对象,parcelable序列化方式 40 testClass2_parcelable class2=new testClass2_parcelable("fry2",22); 41 intent.putExtra("data4_obj", class2); 42 43 startActivity(intent);//打开activity
44 }
45 });
46 }
47 }
activityDataSend.Activity01
1 package activityDataSend;
2
3
4
5 import com.example.activityDataSend.R;
6
7 import android.app.Activity;
8 import android.os.Bundle;
9 import android.util.Log;
10 import android.widget.TextClock;
11 import android.widget.TextView;
12
13 public class Activity01 extends Activity{
14 private TextView textView_ans;
15 @Override
16 protected void onCreate(Bundle savedInstanceState) {
17 // TODO Auto-generated method stub
18 super.onCreate(savedInstanceState);
19 setContentView(R.layout.activity01);
20
21 textView_ans=(TextView) findViewById(R.id.textView_ans);
22 Bundle bundle = getIntent().getExtras(); 23 String data1=bundle.getString("data1"); 24 double data2=bundle.getDouble("data2"); 25 testClass1_serialize data3_obj=(testClass1_serialize) bundle.get("data3_obj"); 26 testClass2_parcelable data4_obj=(testClass2_parcelable) bundle.get("data4_obj"); 27
28 Log.d("MainActivity",bundle.get("data3_obj")+"\n"+bund