Android入门篇六:使用意图传递数据之返回结果
2013-02-16 22:47
621 查看
在一个Activity中通过意图启动另一个Activity,并且希望被启动的Activity回传结果过去,这时候就需要startActivityForResult(intent)来调用Activity, 并且重写onActivityResult()方法,它会被回调,做接收结果的一些操作。
下面通过一个实例来演示如何使用:
工程结构:
![](http://img.my.csdn.net/uploads/201302/16/1361025974_8228.png)
运行结果:
MainActivity结果截图:
![](http://img.my.csdn.net/uploads/201302/16/1361026116_4811.png)
打开的OtherActivity截图:
![](http://img.my.csdn.net/uploads/201302/16/1361026145_5328.png)
输入需要回传的内容:
![](http://img.my.csdn.net/uploads/201302/16/1361026164_2371.png)
返回结果截图:
![](http://img.my.csdn.net/uploads/201302/16/1361026188_6107.png)
下面是源代码:
MainActivity.java
OtherActivity.java
main.xml
other.xml
下面通过一个实例来演示如何使用:
工程结构:
![](http://img.my.csdn.net/uploads/201302/16/1361025974_8228.png)
运行结果:
MainActivity结果截图:
![](http://img.my.csdn.net/uploads/201302/16/1361026116_4811.png)
打开的OtherActivity截图:
![](http://img.my.csdn.net/uploads/201302/16/1361026145_5328.png)
输入需要回传的内容:
![](http://img.my.csdn.net/uploads/201302/16/1361026164_2371.png)
返回结果截图:
![](http://img.my.csdn.net/uploads/201302/16/1361026188_6107.png)
下面是源代码:
MainActivity.java
package com.intent.activity; 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.TextView; public class MainActivity extends Activity implements OnClickListener{ private Button btn; private TextView backText; private static final int REQUESTCODE = 1; //返回的结果码 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); backText = (TextView)findViewById(R.id.backText); btn = (Button)findViewById(R.id.btOpenOtherActivity); btn.setOnClickListener(this); } @Override public void onClick(View v) { //定义一个意图 Intent intent = new Intent(MainActivity.this,OtherActivity.class); //启动意图 startActivityForResult(intent, REQUESTCODE); } //activity的回调函数 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(resultCode==2){ if(requestCode==REQUESTCODE){ String message = data.getStringExtra("message"); backText.setText("回传过来的值:"+message); } } } }
OtherActivity.java
package com.intent.activity; 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 OtherActivity extends Activity implements OnClickListener{ private EditText editText; private Button btn; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.other); editText = (EditText) findViewById(R.id.editText); btn = (Button)findViewById(R.id.btnSendBack); btn.setOnClickListener(this); //获取Intent传递的Bundle对象和它里面的数据 Bundle data = getIntent().getExtras(); } @Override public void onClick(View v) { Intent intent = new Intent(); String text = editText.getText().toString(); intent.putExtra("message", text); //通过Intent对象返回结果,setResult方法 setResult(2,intent); finish();//结束当前Acitvity } }
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="这是:MainActivity" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btOpenOtherActivity" android:text="使用意图打开OtherActivity并返回结果"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/backText" /> </LinearLayout>
other.xml
<?xml version="1.0" encoding="utf-8"?> <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:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="请输入回传的内容" android:id="@+id/editText"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="返回结果" android:id="@+id/btnSendBack"/> </LinearLayout>
相关文章推荐
- android使用意图传递数据之返回结果
- android开发入门-1(使用意图传递数据)
- android 使用Intent传递数据之返回结果
- 使用意图传递数据之返回结果
- android 使用Intent传递数据之返回结果
- 【Android】使用Intent实现数据传递之返回结果
- android 使用Intent传递数据之返回结果
- Android学习备忘011——使用Intent传递数据之返回结果
- Android入门篇二:使用意图在Activity之间传递数据
- 意图(Intent)讲解2:安卓使用意图(Intent)传递数据并返回结果
- 使用Intent传递数据之返回结果
- 无废话Android之smartimageview使用、android多线程下载、显式意图激活另外一个activity,检查网络是否可用定位到网络的位置、隐式意图激活另外一个activity、隐式意图的配置,自定义隐式意图、在不同activity之间数据传递(5)
- Android使用意图传递数据的四种方式
- Android 使用意图传递数据
- android开发入门-2(使用静态变量传递数据)
- Android使用意图传递数据的四种方式
- Android入门篇三:使用静态变量在Activity之间传递数据
- 5. Android使用意图传递数据之全局变量传递-Application类
- android---(Activity组件、状态、生命周期、传递数据、处理返回结果、屏幕方向、保存数据)
- android学习笔记---1.为应用添加新的Activity,中使用Intent(意图),结果码,请求码,得到新打开Activity 关闭后返回的数据,Bundle类的作用