Android:捕获活动的回报
我有一个关于开展新活动的问题。 归结到这一点。 我有一个视图上的3个选项卡
A) contains gMap activity B) camera activity C) some random text fields.
要求是应用程序在肖像模式下运行。
所有3个选项卡按预期工作W /相机预览表面(B)的例外。 它旋转90度。 他们只是为了使它正确的是设置应用程序的风景,抛出我所有的标签周围,是几乎不可行的。
我的解决scheme是:replace
我的相机活动与一个正常的活动是空的瓦特/例外
Intent i = new Intent(this,CameraActivity.class); startActivity(i);
这启动我的CameraActivity。 这工作正常。 我必须做一个线性布局,包括3个看起来像真正标签的图像,所以我可以尝试模仿标签的操作,同时将屏幕旋转到横向,并将视觉保持为纵向。 用户可以单击其中一个图像(button)来显示下一个选项卡。 这是我的问题。 它应该退出我的“相机活动”返回到标签中的“空白活动”,在那里它应该被解释为点击从我的形象desiered选项卡。
主要的是,当它返回时,它返回到一个空白(黑色)页面下的选项卡(因为它是“空的”)。 如何将返回事件捕获callback用该活动的页面,然后查看它们执行的操作?
我可以设置一个onclicklistener,在那里我可以响应被点击的假标签(图片)退出摄像头的活动。 退出时,选项卡应该更新,以便返回。 有什么build议么?
谢谢,
我将专注于回答如何解决你的工作问题,使其performance得如你所愿。
捕获在另一个活动中执行的动作需要三个步骤。
通过使用startActivityForResult
而不是startActivityForResult
来启动辅助Activity(您的'camera Activity')作为子活动。
Intent i = new Intent(this,CameraActivity.class); startActivityForResult(i, STATIC_INTEGER_VALUE);
在子活动(相机活动)中,当用户单击不同的标签图像时,您不需要closures活动,而是需要创build一个新的Intent,并在使用额外套件返回到父应用程序时包含要显示的标签的索引。 在调用finish
closures相机Activity之前,将其传回给父调用setResult
。
resultIntent = new Intent(null); resultIntent.putExtra(PUBLIC_STATIC_STRING_IDENTIFIER, tabIndexValue); setResult(Activity.RESULT_OK, resultIntent); finish();
最后一步是在调用Activity中,重写onActivityResult
来监听来自Camera的callbackActivity。 从返回的Intent中获取额外的内容,以确定您应该显示的选项卡的索引。
@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; } } }