startActivityForResult、onActivityResult

来源:互联网 发布:好玩的gba游戏 知乎 编辑:程序博客网 时间:2024/06/05 14:49

第一个页面(一般启动、带回调启动)button

第二个页面(一般返回、带结果返回)button

------------------------------------------

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <EditText         android:id="@+id/et_main_message"        android:layout_width="match_parent"        android:layout_height="wrap_content"/>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content" >                <Button             android:id="@+id/btn_main_btn1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="一般启动"/>                 <Button             android:id="@+id/btn_main_btn2"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="回调启动"/>    </LinearLayout>    </LinearLayout>

activity_second.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <EditText         android:id="@+id/et_second_message"        android:layout_width="match_parent"        android:layout_height="wrap_content"/>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content" >                <Button             android:id="@+id/btn_second_btn1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="一般返回"            android:onClick="back1"/>                 <Button             android:id="@+id/btn_second_btn2"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="带结果返回"            android:onClick="back2"/>    </LinearLayout>    </LinearLayout>

MainActivity.java

package com.atguigu.helloworld;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class MainActivity extends Activity implements OnClickListener {//将3个视图设置成员变量private EditText et_main_message;private Button btn_main_btn1;private Button btn_main_btn2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 加载视图setContentView(R.layout.activity_main);// 获取视图对象et_main_message = (EditText) findViewById(R.id.et_main_message);btn_main_btn1 = (Button) findViewById(R.id.btn_main_btn1);btn_main_btn2 = (Button) findViewById(R.id.btn_main_btn2);// 设置监听事件 this代表MainActivitybtn_main_btn1.setOnClickListener(this);btn_main_btn2.setOnClickListener(this);}@Overridepublic void onClick(View v) {// 一般启动if (v == btn_main_btn1) {// 创建意图对象Intent intent = new Intent(this, SecondActivity.class);// 读取数据String msg = et_main_message.getText().toString();//--保存数据intent.putExtra("message", msg);// 一般启动startActivity(intent);}// 带回掉的启动if (v == btn_main_btn2) {// 创建意图Intent intent = new Intent(this, SecondActivity.class);// 读取数据--保存数据String msg = et_main_message.getText().toString();intent.putExtra("message", msg);int requestCode = 1;// 带回调启动startActivityForResult(intent, requestCode);}}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if (requestCode == 1 && resultCode == 2) {// 得到返回的结果String result = data.getStringExtra("resultMsg");et_main_message.setText(result);}}}

SecondActivity.java

package com.atguigu.helloworld;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.EditText;public class SecondActivity extends Activity {private EditText et_second_message;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_second);// 得到视图对象et_second_message = (EditText) findViewById(R.id.et_second_message);// 获取意图对象Intent intent = getIntent();//读取信息String message = intent.getStringExtra("message");//设置信息et_second_message.setText(message);}public void back1(View v) {// 一般返回finish();}public void back2(View v) {int resultCode = 2;//获取意图对象Intent intent = getIntent();//获取信息String value = et_second_message.getText().toString();//设置信息intent.putExtra("resultMsg", value);//设置返回的结果setResult(resultCode, intent);finish();}}





0 0
原创粉丝点击