yiranwujixian 2012-10-25 02:59 采纳率: 100%
浏览 5143
已采纳

Android:捕获一个activity的返回

关于启动一个新的activity我遇到了一个问题。主要的问题就是,在一个视图上我有三个tab
A) 包含gMap activity
B) camera activity
C)一些随机的文本字段
要求就是这个应用程序要在肖像模式下运行。
除了Camera Preview Surface (B),所有的三个tab都正常。它旋转了90度。唯一的方法是把应用程序设置成横屏显示模式,移除所有的标签。但是这样是非常不切实际的。
我的解决方案就是:代替
我的camera activity和一个空的常规activity,除了

Intent i = new Intent(this,CameraActivity.class);
    startActivity(i);

这将启动我的CameraActivity。而且很正常。我必须做一个包含3个图片的线性布局使它看起来像真正的tab,所以我可以试着模拟操作系统的tab,旋转屏幕成横屏然后保持视觉效果作为图像。用户可以点击其中的一个图像(按钮)来显示下一个tab。这是我的想法。它应该在一个tab中退出我的‘camera activity’,返回到‘blank activity’,它应该解释为从我的image中单击desiered tab。

最主要的就是,当它返回时,它在一个tab下返回一个空白(黑色)页面(因为它是空的)。我怎么能够捕获调用activity的返回这个页面的返回事件,然后看看做了什么动作?
当点击退出camera activity时,我可以设置一个点击的监听事件以便可以对假tab(图像)被点击做出会用。一旦退出,tab应该更新以便你来返回。有什么建议么?
谢谢。

  • 写回答

1条回答

  • Sueyexin 2012-10-25 05:32
    关注

    我只专注于回答怎么解决你的这个很紧急的问题,所以答案也你想要的。
    捕获在另外一个activity中的一个activity的动作需要三个步骤。
    加载第二个activity(你的‘camera activity’)作为一个子activity,用startActivityForResult而不是startActivity。

    Intent i = new Intent(this,CameraActivity.class);    
    startActivityForResult(i, STATIC_INTEGER_VALUE);
    

    在这个子activity(camera activity)中,当你返回到父app时用额外的bundle,你需要创建一个新的包含索引tab的intent来显示,而不仅仅是当一个用户点击不同的tab图片的时候关闭activity。在关闭camera activity结束之前传递它到父调用setResult。

    resultIntent = new Intent(null);
    resultIntent.putExtra(PUBLIC_STATIC_STRING_IDENTIFIER, tabIndexValue);
    setResult(Activity.RESULT_OK, resultIntent);
    finish();
    

    最后一步是在调用activity的时候,重写onActivityResult来监听camera activity的回调。从返回的Intent获得额外的来决定你想要显示的索引tab

    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) {     
      super.onActivityResult(requestCode, resultCode, data); 
      switch(requestCode) { 
        case (STATIC_INTEGER_VALUE) : { 
          if (resultCode == Activity.RESULT_OK) { 
          int tabIndex = data.getIntExtra(PUBLIC_STATIC_STRING_IDENTIFIER);
          // TODO Switch tabs using the index.
          } 
          break; 
        } 
      } 
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制