有时候在一个Activity活动结束的时候有些数据是需要回传给上一个Activity的,所以这就用到了带返回值的跳转。
好比网上论坛的注册,在填写完你的注册信息后,返回登录时很多时候直接填写好你的登录信息而不用再次输入,这个用到的就是
带返回值的跳转。
带返回值的跳转有几步骤:
1.从A这个Activity—》跳转到B
Intent intent = new Intent();
intent.setAction(“com.example.d”);
startActivityForResult(intent, REQUESTCODE); // REQUESTCODE是定义好用来匹对传送的信息。
2.在B这个Activity中, 返回一个数据 setReslut(int,intent) 。 这个intent不能有意图
Intent data = new Intent();
data.putExtra(“name”, name);
setResult(RESULT_OK, data);
finish(); //用来结束当前Activity。
3.A 要接受数据 onactivityresult()
if (requestCode == REQUESTCODE & resultCode == RESULT_OK) {//RESULT_OK是定义好用来匹对返回的信息。
String name = data.getStringExtra(“name”);
tv.setText(name);
//只有传来的和返回的匹对成功后才能得到已销毁Activity的返回数据。
接下来咱们就来写一个这样的程序:在第一个Activity通过注册按钮跳转第二个Activity,注册之后返回第一个Activity同时销毁第
二个Activity,将信息填写到第一个Activity。
先来搞定界面:
界面xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.tz02.MainActivity"
>
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="账号: " />
<EditText
android:id="@+id/et"
android:layout_toRightOf="@id/tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入账号"
/>
<TextView
android:id="@+id/tv1"
android:layout_below="@id/tv"
android:layout_marginTop="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="密码: "