Android之启动一个activity并且获得回传数据
2011-09-22 14:32
465 查看
在Android中,如果想要启动一个activity,可以用startActivity,或者是startActivityForResult(intent, GET_CODE)
如果是想要得到新的activity回传的数据的话,必须使用第二个方法startActivityForResult(intent, GET_CODE);
并且在原来的activity中覆写onActivityResult(int requestCode, int resultCode,
Intent data)来对获取的数据进行处理
例如在原来的activity中有如下的代码对接受到的数据进行处理
/**
* 该方法是回调方法,当startActivityForResult启动的activity结束后
*
* @param requestCode 传递给startActivity()的请求码
* @param resultCode 从启动的activity中,在setResult()设置的一个结果码,一般用来标识处理的结果
* @param data 用来接受传递过来的数据
*/
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == GET_CODE) {
Editable text = (Editable)mResults.getText();
if (resultCode == RESULT_CANCELED) {
text.append("(cancelled)");
// Our protocol with the sending activity is that it will send
// text in 'data' as its result.
} else {
text.append("(okay ");
text.append(Integer.toString(resultCode));
text.append(") ");
if (data != null) {
text.append(data.getAction());
}
}
text.append("\n");
}
}
在开启新的activity的时候,有下面的程序
//开启一个activity,并且想得到返回数据. 会连同GET_CODE一起返回
Intent intent = new Intent(ReceiveResult.this, SendResult.class);
startActivityForResult(intent, GET_CODE);
在新的activity中有如下的程序
setResult(RESULT_OK, (new Intent()).setAction("Corky!"));
finish();
如果是想要得到新的activity回传的数据的话,必须使用第二个方法startActivityForResult(intent, GET_CODE);
并且在原来的activity中覆写onActivityResult(int requestCode, int resultCode,
Intent data)来对获取的数据进行处理
例如在原来的activity中有如下的代码对接受到的数据进行处理
/**
* 该方法是回调方法,当startActivityForResult启动的activity结束后
*
* @param requestCode 传递给startActivity()的请求码
* @param resultCode 从启动的activity中,在setResult()设置的一个结果码,一般用来标识处理的结果
* @param data 用来接受传递过来的数据
*/
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == GET_CODE) {
Editable text = (Editable)mResults.getText();
if (resultCode == RESULT_CANCELED) {
text.append("(cancelled)");
// Our protocol with the sending activity is that it will send
// text in 'data' as its result.
} else {
text.append("(okay ");
text.append(Integer.toString(resultCode));
text.append(") ");
if (data != null) {
text.append(data.getAction());
}
}
text.append("\n");
}
}
在开启新的activity的时候,有下面的程序
//开启一个activity,并且想得到返回数据. 会连同GET_CODE一起返回
Intent intent = new Intent(ReceiveResult.this, SendResult.class);
startActivityForResult(intent, GET_CODE);
在新的activity中有如下的程序
setResult(RESULT_OK, (new Intent()).setAction("Corky!"));
finish();
相关文章推荐
- 如何通过AndroidJUnit4快速启动一个activity,并且不自动退出
- Android启动一个新的activity并携带数据,返回数据给上一个activity
- Android 实现在Activity中操作刷新另外一个Activity数据列表
- 【从头学android】从新的Activity中返回数据给前一个Activity
- Android 实现在Activity中操作刷新另外一个Activity数据列表
- 【Android】仿QQ功能点击通知栏返回应用,非启动一个新Activity
- android 启动另外一个程序的Activity
- 【1】Android源码阅读:一个Activity是如何启动的?
- Android教程 -04 启动其它Activity,静态工厂设计模式传递数据
- Android返回数据给上一个活动-startActivityForResult
- Android应用开发学习之启动另外一个Activity
- Android基础之——startActivityForResult启动界面并返回数据,上传头像
- Android Activity传递数据使用getIntent()接收不到,揭秘Intent传递数据与Activity启动模式singleTask的关系。
- Android中的startActivityForResult启动活动并取得返回数据的使用
- 启动一个新的activity并携带数据,返回数据给上一个activity
- android 获得一个应用程序的启动次数,运行时间等信息
- Android在一个应用中启动另一个应用的Activity时失败的解决办法
- 【第三篇】学习 android 事件总线androidEventbus之list数据事件的传递,发送list数据事件到另外一个Activity
- 在android的service中启动一个通知,点击通知无法启动activity,报一个SecurityException异常
- Android 6.0 AMS分析的第二条线:以Launcher启动一个Activity为例,分析应用进程的创建、Activity的启动,以及他们和AMS之间的交互等知识;