本文介绍如何在Activity之间传递参数,该参数包括简单数据、包Bundle(提供2种方法,即有和无Bundle的两种方法)、值对象(提供2种方法,即Serializable和Parcelable的两种方法),最后介绍如何获取Activity的返回参数。以上所介绍的内容都提供了操作步骤和源码以便于大家交流与分享心得。
1、在Activity之间传递简单数据
(1)、新建Button
在activity_main.xml中加入如下代码:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnStartAty"
android:text="启动另一个Activity"/>
效果如下图:
发现Button下面重叠着东西,这个东西就是activity_main.xml中原有的TextView,只需删除下面代码即可,
<TextView android:text="@string/hello_world" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView" />
删除代码后的效果如下图:
(2)、新建Activity
直接在下图java文件夹下面直接新建即可。
新建的Activity命名为TheAty,Android Studio会自动在layout文件夹下生成activity_the_aty.xml,并且在AndroidManifest.xml中自动加入下面代码:
<activity
android:name=".TheAty"
android:label="@string/title_activity_the_aty" >
</activity>
接下来我们在activity_the_aty.xml中的TextView中设置一个id,即修改为如下代码:
<TextView android:text="@string/hello_world" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/tv" />
即将id设置为tv。
(3)、在MainActivity.java中用Intent传递参数
在MainActivity.java中加入如下代码:
//用Intent传递参数
findViewById(R.id.btnStartAty).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,TheAty.class);
i.putExtra("data","Activity send args");
startActivity(i);
}
});
(4)、在TheAty.java中用