您的位置:首页 > 移动开发 > Android开发

Activity带有返回值的跳转(startActivityForResult跳转)

2016-11-08 19:35 357 查看

Android中Activity之间的传值是十分普遍和常见的,使用也十分方便,下面将介绍Activity中带有返回值的页面跳转方法:

使用步骤:

1.在MainActivity中使用startActivityForResult启动Main2Activity。
2.在MainActivity中重写onActivityResult方法,用于接收Main2Activity返回的数据
3.在Main2Activity中使用setResult将数据返回给MainActivity,并且调用finish结束Main2Activity。

效果截图:







代码:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
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.test_activity_startactivityforresult.MainActivity">

<TextView
android:id="@+id/main_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="MainActivity!!!!!Hello World!" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="跳转到第二个界面"
android:onClick="click"/>
</LinearLayout>


MainActivity:

package com.example.test_activity_startactivityforresult;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private TextView mTextView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView) findViewById(R.id.main_txt);
}
public void click(View view){
Intent intent = new Intent(this, Main2Activity.class);
startActivityForResult(intent, Tool.REQUEST_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
String stringExtra = data.getStringExtra(Tool.TEXT);
mTextView.setText(stringExtra);
}
}


activity_main2.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context="com.example.test_activity_startactivityforresult.Main2Activity">
<EditText
android:id="@+id/main2_deittext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="请输入信息"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="给MainActivity提供信息"/>
</LinearLayout>


Main2Activity
package com.example.test_activity_startactivityforresult;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;

public class Main2Activity extends AppCompatActivity {

private EditText mEditText;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
mEditText = (EditText) findViewById(R.id.main2_deittext);
}
public void onClick(View view){
String text = mEditText.getText().toString();
Intent intent = getIntent();
intent.putExtra(Tool.TEXT,text);
setResult(Tool.REQUEST_CODE,intent);
finish();
}

}


Tool
public class Tool {
public static final int REQUEST_CODE = 1;
public static final String TEXT = "text";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android Activity传值
相关文章推荐