当前位置: 首页 > news >正文

全国中小企业网站湖南疫情最新消息今天

全国中小企业网站,湖南疫情最新消息今天,房地产景区网站建设方案,国外域名需要实名吗最近在写一个安卓程序,在程序里需要用到startActivityForResult这个Intent操作关键字,与该关键字有关的还有onActivityResult和setResult。这里对其用法进行一个总结。 三者在API中的形式 //startActivityForResult与startActivity类似,只不…

最近在写一个安卓程序,在程序里需要用到startActivityForResult这个Intent操作关键字,与该关键字有关的还有onActivityResult和setResult。这里对其用法进行一个总结。

三者在API中的形式

//startActivityForResult与startActivity类似,只不过该方法可将方法打开新的Activity,新的Activity 关闭后会向前面的Activity传回数据,为了得到传回的数据,必须在前面的Activity中重写onActivityResult(int requestCode, int resultCode, Intent data)方法。
startActivityForResult(Intent intent, int requestCode)
onActivityResult(int requestCode, int resultCode, Intent data)
setResult(int resultCode, Intent data)

三者组合的作用

通过API中的情况,基本可以推出三者的操作逻辑:假设现在有两个activity A和B,假如我们从A跳转到B【startActivityForResult实现】,再B完成相应的工作以后finish掉B,然后传数据给A【setResult实现】,A在接受到数据以后做相应的操作【onActivityResult实现】。其操作逻辑可以用以下代码来表示:

A//启动B
Intent intent = new Intent();
intent.setClass(A.this, B.class);
//1是我们自己定义常量,用于标注由A->B这个活动,对应下面使用到的onActivityResult中的requestCode
startActivityForResult(intent, 1);
B//do something
//此方法中的 1 表示onActivityResult的resultCode,一般也用 RESULT_OK(1)和RESULT_CANCELED(0)表示,data一般为 Intent类型的数据,也可以为 null
setResult(1, data);
finish();

然后由活动B再返回A执行onActivityResult方法。

代码示例

ActivityA.Java中的代码:

button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent("com.example.activitytest.ACTTON_START");startActivityForResult(intent,1);//打开活动B}});

ActivityB.java代码

在活动B中用 setResult 方法设置好要返回的结果,setResult()接收两个参数,第一个是活动返回处理结果,一般只是用RESULT_OK和RESULT_CANCELED,另一个这是将带有数据的Intent传递回去。

button2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent();intent.putExtra("data_return","测试一下");//要返回的结果setResult(RESULT_OK,intent);finish();//销毁活动B}});

在活动B被销毁后 ,会回调上一个活动(即活动A)的onActivityResult()方法(想要在活动A中获取传递的结果,就需要覆写该方法)。

@Override   //                        请求码          处理结果          带返回数据的Intent                  protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {if(data!=null){switch (requestCode){case 1 :if(resultCode == RESULT_OK){String returnData = data.getStringExtra("data_return");Log.d("MainActivity",returnData);}break;default:}}else{return ;}

这样在活动B被销毁后,就会回到活动A,获取到活动B返回的数据了。但在用户如果在活动B并没有定义按钮button2,而是按下Back按键,这时候在 ActivityB.java中覆写 onBackPressed()方法。

            @Overridepublic void onBackPressed() {Intent intent = new Intent();intent.putExtra("data_return","测试一下");setResult(RESULT_OK,intent);finish();}});

需要注意的是,应该关注到在返回 ActivityA.java 时,onActivityResult中 需要判断 data 与 null 的关系,这样子有助于程序的稳健性。

http://www.zhongyajixie.com/news/32437.html

相关文章:

  • 财务咨询网站模板泉州排名推广
  • 中国购物网站大全排名147seo工具
  • 网站bbs备案seo的中文含义是
  • 哈尔滨最新疫情防控政策百度seo关键词优化费用
  • 如何建设部网站查职称windows优化大师和360哪个好
  • 网站建设西街百度官方网平台
  • 做日本网站青岛网站建设优化
  • 万网网站制作安徽seo团队
  • 建设公司与建筑公司的区别整站优化包年
  • wordpress加sslseo目标关键词优化
  • 衡水提供网站制作公司哪家好aso优化违法吗
  • 网站域名和空间费用亚马逊跨境电商开店流程及费用
  • 网站做微信链接怎么做东莞做网站的联系电话
  • 做网站的流程分析-图灵吧上海网站排名优化怎么做
  • 建设网站商城2024年阳性什么症状
  • 视频网站的链接怎么做宁波seo专员
  • 独立做网站前端数据seo推广软
  • 佛山市网站建设公司推广品牌的策划方案
  • 西安360免费做网站百度网盘搜索引擎官方入口
  • 纯静态网站开发免费注册
  • 动态网站的实现过程推广信息怎么写
  • 百度免费网站申请小程序搭建教程
  • 哪家装修公司比较好的seo整合营销
  • 做彩票网站违法百度最新秒收录方法2023
  • 苹果做ppt模板下载网站武汉seo公司排名
  • 阿里云服务器可以做网站最近国际时事热点事件
  • 中山网站建设服务百度主页面
  • 关于加强政务网站建设的通知百度推广热线电话
  • 网站备案周期qianhu微建站
  • 公司做网站的人工智能培训一般多少钱