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"; }
相关文章推荐
- 【Activity】多个Activity带返回值跳转_startActivityForResult_【场景】选择项利用Activity实现,不用popuwindow的情况
- 2015/8/19/横、竖、满屏/消除标题、标题栏/startActivityForResult(启动带有返回值的intent)/Intent
- Android 页面回调跳转(startActivityForResult)
- TabHost中使用startActivityForResult无法接收返回值的解决方案[转]
- TabHost中使用startActivityForResult无法接收返回值的解决方案
- TabHost中使用startActivityForResult无法接收返回值的解决方案
- android-Activity的跳转与传值:startActivityForResult,setResult,onActivityResult
- startActivityForResult 页面跳转回调
- Fragment中调用startActivityForResult()返回值的实现
- startActivityForResult 页面跳转回调
- startActivityForResult() 跳转回来而没调用onActivityResult()
- android中使用startactivityforresult跳转Activity后需要重写onBackPressed()方法
- TabHost中使用startActivityForResult无法接收返回值的解决方案
- 带值跳转startActivityForResult
- TabHost中使用startActivityForResult无法接收返回值的解决方案
- Android StartActivityForResult两个Activity相互跳转传递消息
- 关于startActivityForResult跳转页面返回时onActivityResult回调无法执行的问题
- 如何跳转回已打开的Activity并传参(不使用startActivityForResult)
- onActivityResult中调用startActivityForResult接收不到返回值
- Android学习之使用startActivityForResult()和onActivityResult()进行跳转并返回数据