• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Patata
http://weibo.com/totome
博客园    首页    新随笔    联系   管理    订阅  订阅
startActivityForResult
 1 /**
 2      * 
 3      *  函数名称 : registerListener
 4      *  功能描述 : 注册监听 
 5      *  参数及返回值说明:
 6      *
 7      *  修改记录:
 8      *      日期:2011-12-13 上午10:14:03    修改人:gy
 9      *      描述    :
10      *
11      */
12     private void registerListener()
13     {
14         btnStartActivityForResult.setOnClickListener(new OnClickListener()
15         {
16             @Override
17             public void onClick(View v)
18             {
19                 //初始化 Intent 对象
20                 Intent intent = new Intent();
21                 //setClass方法:指定 Intent 要启动的 Activity
22                 //参数一:表示原先 Activity 的环境条件对象(Context)
23                 //参数二:表示被启动的 Activity 的 Class 对象
24                 intent.setClass(StartIntentForResult_Demo1.this, ResultActivity1.class);
25                 //启动一个新的 Activity
26                 //startActivityForResult 使这个新的 Activity 关闭后能返回参数
27                 //参数二:1  是发送参数,主要用来区分当前 Activity 打开多个 Activity 时进行返回值的区分 
28                 startActivityForResult(intent, 1);
29             }
30         });
31     }
32     
33     /**
34      *  函数名称 : onActivityResult
35      *  功能描述 : 返回此 Activity 时调用此方法 
36      *  参数说明:
37      *      @param requestCode    就是当前Activity 中  startActivityForResult(intent, 1) 方法中第二个参数的值
38      *      @param resultCode    ResultActivity1.this.setResult(Activity.RESULT_OK, intent) 这个返回结果的参数一的值
39      *      @param data            Intent 对象
40      *  返回值:
41      *      
42      *  修改记录:
43      *  日期:2011-12-13 下午1:55:16    修改人:gy
44      *  描述    :
45      *                     
46      */
47     @Override
48     protected void onActivityResult(int requestCode, int resultCode, Intent data)
49     {
50         super.onActivityResult(requestCode, resultCode, data);
51         System.out.println("调用了 StartIntentForResult_Demo1 的 onActivityResult 方法,requestCode:" + requestCode + "   resultCode:" + resultCode);
52         //requestCode = 1 就是上面打开 ResultActivity1 时传递的发送参数,主要用来区分当前 Activity 打开多个 Activity 时进行返回值的区分 
53         if(requestCode == 1)
54         {   
55             //resultCode = Activity.RESULT_OK 是 ResultActivity1 传送回来的参数值
56             if(resultCode == Activity.RESULT_OK)
57             {  
58                 String strResult = data.getStringExtra("result");
59                 tvResult.setText(strResult);
60             }       
61         } 
62     }

 

 

新的Activity返回信息的方法

//初始化 Intent 对象
Intent intent = new Intent();
//setClass方法:指定 Intent 要启动的 Activity
//参数一:表示原先 Activity 的环境条件对象(Context)
//参数二:表示被启动的 Activity 的 Class 对象
intent.setClass(ResultActivity1.this, StartIntentForResult_Demo1.class);
intent.putExtra("result", "这是点击 ResultActivity1 的 btnBack1 按钮返回的数据");
//启动一个新的 Activity
//setResult方法:设置返回给 Activity 的结果
//参数一:返回的代码
//参数二:Intent 对象
ResultActivity1.this.setResult(Activity.RESULT_OK, intent);
//销毁当前 Activity,并返回到 StartIntentForResult_Demo1,而且会调用 StartIntentForResult_Demo1 的 onActivityResult 方法
//(注意:这句不能少,不然不会返回到 StartIntentForResult_Demo1)
ResultActivity1.this.finish();

 

 

 

 

 

posted on 2012-08-31 10:24  Blacksky  阅读(430)  评论(1)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3