安卓:捕捉活动的回报
-
19-08-2019 - |
题
我有一个关于推出新的活动的问题。它归结到这一点。 我有一个视图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;
}
}
}