android setresult是什么作用
3个回答
推荐于2016-02-22 · 知道合伙人软件行家
关注
展开全部
android setResult 是用于返回数据给上一个Activity的,也就是从新的Activity中返回数据给前一个Activity
逻辑步骤:
1. startActivityForResult(Intent intent,int i); 启动下一个Activity要传送到下一个Activity的数据封装到intent中,并规定下一个Activity必须返回一个值i;
2. 运行下一个Activity,并返回int i;
3 onActivityResult(int requestCode,int ResultCode,Intent data) 返回的i值此处传给requestCode,且只有当requestCode接受到的值是规定的i时此方法才能正确执行。
通俗理解:
startActivityForResult(Intent,int)启动下一个Activity且规定下一个Activity应该返回一个值; 下一个Activity执行; 下一个Activity执行完,返回的值是规定的值时onActivityResult方法才能正确执行。
下面来一个例子:
主调函数通过下面的代码调用Activity和发送数据:
// 用Bundle来绑定所要的数据 Bundle bd = new Bundle();
bd.putDouble("height", height); bd.putString("sex", sex);
// 创建一个新的Intent,并将Bundle传进去
Intent it = new Intent(); it.putExtras(bd);
it.setClass(ActivityDemo.this, Bundle2.class);
startActivityForResult(it, RESULT_OK);
主调函数通过onActivityResult回调传回数据:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (resultCode) {
case RESULT_OK:
String sex = data.getStringExtra("sex");
if(sex.equals("M")){
rg.check(R.id.M);
}else {
rg.check(R.id.F);
}
break;
default:
break;
}
}
被调函数通过下面代码返回数据:
intent=this.getIntent();
bunde = intent.getExtras();
String sex = bundle.getString("sex");
Double height = bundle.getDouble("height");
Bundle2.this.setResult(RESULT_OK,intent);
Bundle2.this.finish();
逻辑步骤:
1. startActivityForResult(Intent intent,int i); 启动下一个Activity要传送到下一个Activity的数据封装到intent中,并规定下一个Activity必须返回一个值i;
2. 运行下一个Activity,并返回int i;
3 onActivityResult(int requestCode,int ResultCode,Intent data) 返回的i值此处传给requestCode,且只有当requestCode接受到的值是规定的i时此方法才能正确执行。
通俗理解:
startActivityForResult(Intent,int)启动下一个Activity且规定下一个Activity应该返回一个值; 下一个Activity执行; 下一个Activity执行完,返回的值是规定的值时onActivityResult方法才能正确执行。
下面来一个例子:
主调函数通过下面的代码调用Activity和发送数据:
// 用Bundle来绑定所要的数据 Bundle bd = new Bundle();
bd.putDouble("height", height); bd.putString("sex", sex);
// 创建一个新的Intent,并将Bundle传进去
Intent it = new Intent(); it.putExtras(bd);
it.setClass(ActivityDemo.this, Bundle2.class);
startActivityForResult(it, RESULT_OK);
主调函数通过onActivityResult回调传回数据:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (resultCode) {
case RESULT_OK:
String sex = data.getStringExtra("sex");
if(sex.equals("M")){
rg.check(R.id.M);
}else {
rg.check(R.id.F);
}
break;
default:
break;
}
}
被调函数通过下面代码返回数据:
intent=this.getIntent();
bunde = intent.getExtras();
String sex = bundle.getString("sex");
Double height = bundle.getDouble("height");
Bundle2.this.setResult(RESULT_OK,intent);
Bundle2.this.finish();
2014-12-06
展开全部
这个方法主要是用于设置返回结果
如果其他Activity 通过 startActivityForResult(intent,requestCode); 打开了你的Activity,那么你需要返回一个结果码和intent数据,就像这样 setResult(resultCode,intent);
系统中很多程序都用到了setResult方法
比如从图库中选择一张图片
Intent i = new Intent();
i.setType("image/*");
i.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(i, 11);
图库在finish之前会调用 setResult(resultCode,intent); 然后你的 onActivityResult 方法会收到一个结果码和intent
如果其他Activity 通过 startActivityForResult(intent,requestCode); 打开了你的Activity,那么你需要返回一个结果码和intent数据,就像这样 setResult(resultCode,intent);
系统中很多程序都用到了setResult方法
比如从图库中选择一张图片
Intent i = new Intent();
i.setType("image/*");
i.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(i, 11);
图库在finish之前会调用 setResult(resultCode,intent); 然后你的 onActivityResult 方法会收到一个结果码和intent
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
亲,你这不把实现贴出来,谁知道什么用。不过看函数名,大概就是设置结果(result的值)的意思。但这个result具体代表什么那就要看代码了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |