Android基础总结1 ----页面传值和事件监听
A 页面传值
Android中在两个Activity中相互传送数值,主要有三种方法:
方法一: 如果数据较少,比如只要传一个字符串
可以使用如下代码:只用Intent组件完成(在Android中Intent是不同组件相互通信的纽带)。
在Activity A中:
Intent intent = new Intent(A.this, B.class);
intent.putExtra("Name", "Value");
startActivity(intent);
在Activity B中:
Intent intent = this.getIntent();
String name = intent.getStringExtra("Name");
上面的例子中是由Activity A(发) 对
Activity B(收)传值,其中putExtra中的参数组成了键值对key-value的操作,第一个参数是键名,第二的是值,就是要传送的值。在Activity B中通过获取键名(Name)就可以获取要传送的值了。
方法二:如果数据比较多,就需要使用 Bundle类
代码如下:要配合使用Bundle类,Bundle类也是一个key-value对。
在Activity A中传值:
Intent intent = new Intent(A.this, B.class);
//通过Bundle对象存储需要传递的数据
Bundle bundle = new Bundle();
//字符、字符串、布尔、字节数组、浮点数等等,都可以传
bundle.putString("Name", "Value");
bundle.putBoolean("Isgood", true);
//把bundle对象assign给Intent
intent.putExtras(bundle)
startActivity(intent);
在Activity B中获取传递的值:
//获取Intent中的Bundle对象
Bundle bundle = this.getIntent().getExtras();
//获取Bundle中的数据,注意类型和key
String name = bundle.getString("Name");
boolean ismale = bundle.getBoolean("Isgood");
上面的都是用的是 startActivity(intent)方法。那二者的区别是什么?