教你如何使用Android onActivityResult
来源:互联网 发布:python里的三引号 编辑:程序博客网 时间:2024/06/16 21:22
此处借鉴http://blog.csdn.net/zd_1471278687/article/details/11567225博主的介绍
在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理。这样的数据交流就要用到回调函数onActivityResult。
<1>startActivityForResult(Intent intent, int requestCode);
第一个参数:一个Intent对象
第二个参数:如果> = 0,当Activity结束时requestCode将归还在onActivityResult()中。以便确定返回的数据是从哪个Activity中返回
<2>onActivityResult(int requestCode, int resultCode, Intent data)
第一个参数:这个整数requestCode提供给onActivityResult,是以便确认返回的数据是从哪个Activity返回的。
这个requestCode和startActivityForResult中的requestCode相对应。
第二个参数:这整数resultCode是由子Activity通过其setResult()方法返回。
第三个参数:一个Intent对象,带有返回的数据。
<3>setResult(int resultCode, Intent data)
调用这个方法把Activity想要返回的数据返回到父Activity
第一个参数:当Activity结束时resultCode将归还在onActivityResult()中,一般为RESULT_CANCELED , RESULT_OK。
第二个参数:一个Intent对象,返回给父Activity的数据。
总共三个页面 主页:MainActivity 子页:OneActivity 、TwoActivity。
MainActivity 点击按钮跳转到 OneActivity 。 OneActivity点击返回 关闭本页面 传值到MainActivity TextView 显示传值内容
package com.example.demoonactivityresult;
import android.os.Bundle;import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.app.Activity;
import android.content.Intent;
public class MainActivity extends Activity {
private Button butone,buttwo;
private TextView textView;
private static final int codeone=101;
private static final int codetwo=102;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView(){
butone=(Button)findViewById(R.id.butone);
buttwo=(Button)findViewById(R.id.buttwo);
textView=(TextView)findViewById(R.id.main_tag);
butone.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent intentone=new Intent(MainActivity.this, OneActivity.class);
String content="主页传到第一个页面的内容";
intentone.putExtra("mainone", content);
startActivityForResult(intentone, codeone);
}
});
buttwo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent intenttwo=new Intent(MainActivity.this, TwoActivity.class);
String contentt="主页传到第二个页面的内容";
intenttwo.putExtra("maintwo", contentt);
startActivityForResult(intenttwo, codetwo);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case codeone:
Bundle bundle=data.getExtras();
//获取第一个页面传过来的值
String bundleContent=bundle.getString("onevalue");
textView.setText(bundleContent);
break;
case codetwo:
Bundle bundlee=data.getExtras();
//获取第二个页面传过来的值
String bundleContentt=bundlee.getString("twovalue");
textView.setText(bundleContentt);
break;
default:
break;
}
}
}
package com.example.demoonactivityresult;
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 OneActivity extends Activity{
private Button button;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.one_activity);
initView();
}
private void initView(){
button=(Button)findViewById(R.id.but_one_back);
textView=(TextView)findViewById(R.id.one_tag);
Intent intent=getIntent();
String intentcon=intent.getStringExtra("mainone");
textView.setText(intentcon);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent=new Intent(OneActivity.this, MainActivity.class);
String content="第一个页面返回主页的值";
intent.putExtra("onevalue", content);
setResult(RESULT_OK, intent);
finish();
}
});
}
}
package com.example.demoonactivityresult;
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 TwoActivity extends Activity{
private Button button;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.two_activity);
initView();
}
private void initView(){
button=(Button)findViewById(R.id.but_two_back);
textView=(TextView)findViewById(R.id.one_tag);
Intent intent=getIntent();
String intentcon=intent.getStringExtra("maintwo");
textView.setText(intentcon);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent=new Intent(TwoActivity.this, MainActivity.class);
String content="第二个页面返回主页的值";
intent.putExtra("twovalue", content);
setResult(RESULT_OK, intent);
finish();
}
});
}
}
- 教你如何使用Android onActivityResult
- android fragment如何使用onActivityResult
- Android:onActivityResult的使用
- Android:onActivityResult的使用
- android的onActivityResult的使用
- Android开发-教你如何使用拨号盘
- Android使用 startActivityForResult 、 onActivityResult 时的注意事项
- android onActivityResult
- Android onActivityResult
- Android-onActivityResult
- Android onActivityResult
- 一步步教你如何使用Android自定义权限。
- android 教你如何导入、使用类库
- Android中的onActivityResult和setResult方法的使用
- Android中的onActivityResult和setResult方法的使用
- Android中的onActivityResult和setResult方法的使用
- Android中的onActivityResult和setResult方法的使用
- Android中的onActivityResult和setResult方法的使用
- 数据中心网络虚拟化 隧道技术
- Xcode7 插件制作入门
- 移动端a链接按下背景变色js
- 大浪淘沙面试题
- linux无锁话编程,原子
- 教你如何使用Android onActivityResult
- 【Java】抽象类和接口的区别
- 【软件工程】4.UML时序图
- PAT (Basic Level)1032. 挖掘机技术哪家强
- 微信token失败原因
- HttpClient使用详解
- 太原网络营销师揭秘百度竞价(SEM)如何判断关键词的好坏?
- 高通平台 lcd driver 调试小结
- 1030. Travel Plan (30)寻找最短路径