gpt4 book ai didi

Android:捕获 Activity 的返回

转载 作者:IT老高 更新时间:2023-10-28 13:09:32 34 4
gpt4 key购买 nike

我有一个关于启动新 Activity 的问题。归结为这一点。我在一个 View 上有 3 个选项卡

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

要求应用程序以纵向模式运行。

所有 3 个选项卡都按预期工作,但相机预览表面 (B) 除外。它旋转了 90 度。他们唯一正确的方法是将应用程序设置为横向,这会抛出我所有的标签,并且几乎不可行。

我的解决方案是这样的:替换

我的相机 Activity 与一个常规 Activity 是空的,除了

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

这会启动我的 CameraActivity。这很好用。我必须做一个线性布局并包含 3 个看起来像真实标签的图像,所以我可以尝试模仿标签的操作,同时将屏幕旋转为横向并将视觉效果保持为纵向。用户可以单击其中一个图像(按钮)以显示下一个选项卡。这是我的问题。它应该退出我的“相机 Activity ”,返回到选项卡中的“空白 Activity ”,它应该被解释为从我的图像中单击所需的选项卡。

主要的是,当它返回时,它会返回到选项卡下的空白(黑色)页面(因为它是“空的”)。如何将返回事件捕获回调用该 Activity 的页面,然后查看它们执行了哪些操作?

我可以设置一个 onclicklistener,我可以在其中响应被点击的假标签(图像)以退出相机 Activity 。退出时,选项卡应更新,以便您返回。有什么建议吗?

谢谢,

最佳答案

我将重点回答如何解决您的工作区,以便它按照您的意愿行事。

要在另一个 Activity 中捕获对一个 Activity 执行的操作,需要三个步骤。

使用 startActivityForResult 而不是 startActivity 将辅助 Activity (您的“相机 Activity ”)作为子 Activity 启动。

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

在子 Activity (相机 Activity )中,您需要创建一个新的 Intent 并包含选项卡的索引以在您返回父应用程序时显示,而不是仅在用户单击不同的选项卡图像时关闭 Activity 附加服务包。在调用 finish 之前将其传递回父调用 setResult 以关闭相机 Activity。

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

最后一步是在调用Activity中,重写onActivityResult来监听来自摄像头Activity的回调。从返回的 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;
}
}
}

关于Android:捕获 Activity 的返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/449484/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com