我有一个关于推出新的活动的问题。它归结到这一点。 我有一个视图3个标签

A) contains gMap activity
 B) camera activity
 C) some random text fields.

的要求是,该应用程序在肖像模式下运行。

所有3个标签按预期工作瓦特/相机预览表面(B)除外。它被旋转90度。他们只让它正确的方法是设置应用到景观围绕抛出我的所有选项卡,并且是几乎不可行的。

我的解决办法是这样的:替换

我用常规活性相机的活动,是空的瓦特/外

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

这将启动我的CameraActivity。这工作正常。我不得不做的线性布局和包括看起来像真正的选项卡3张图片,所以我可以尝试和模仿标签的操作而旋转屏幕为横向,保持视觉效果的肖像。 用户可以点击所述图像(按钮)中的一个,以显示下一个标签。这是我的问题。它应该退出我的“相机活动”返回一个标签,它应该被解释为从我的形象点击desiered选项卡中的“空白活动”。

主要的是,当它返回,它一个标签下返回到空白(黑色)页(因为它是“空”)。我怎样才能捕捉到返回事件回调用该活动的页面,然后看他们执行什么动作?

我可以设置一个onclicklistener哪里可以向假片(图像)被点击退出照相机活性出响应。退出时,标签应该更新,这样是你回来。任何建议?

谢谢,

有帮助吗?

解决方案

我将专注于回答如何解决您的workround,使其表现为你想要的。

要捕捉内另一个活动执行的操作需要三个步骤。

通过使用代替startActivityForResult startActivity启动次级活性(你“相机活动”),其为子活动。

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

在子活动(照相机活性),而不是当用户点击不同的标签图像刚关闭的活动,则需要创建一个新的意图,并包括选项卡的索引时,使用返回到父应用程序,以显示其它功能捆绑。将它传递回父呼叫setResult主叫finish关闭照相机活动之前。

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

最后一步是在呼叫活动,重写onActivityResult以监听来自相机活动回调。从返回的意图得到额外的决定,你应该显示选项卡的索引。

@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; 
    } 
  } 
} 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top