Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android/java-需要找到当前布局的ID-如何?_Java_Android_Android Layout - Fatal编程技术网

Android/java-需要找到当前布局的ID-如何?

Android/java-需要找到当前布局的ID-如何?,java,android,android-layout,Java,Android,Android Layout,我正在为Android操作系统创建一个应用程序,我在一个问题上遇到了一点绊脚石。以下是我想做的: 我目前捕获的“后退”按钮事件很好,但我需要它的行为稍有不同,这取决于用户正在查看的当前布局。我有四个我正在使用的布局,如果用户在布局1、2或3上,我希望“返回”将它们带到布局1;但如果它们在布局4上,我希望它们返回布局3 问题是,我一辈子都无法找出返回当前布局id的代码。我相信这是一个非常简单的问题,所以我希望有人能快速解决 感谢您的指点——出于某种原因,我在让getCurrentFocus()工

我正在为Android操作系统创建一个应用程序,我在一个问题上遇到了一点绊脚石。以下是我想做的:

我目前捕获的“后退”按钮事件很好,但我需要它的行为稍有不同,这取决于用户正在查看的当前布局。我有四个我正在使用的布局,如果用户在布局1、2或3上,我希望“返回”将它们带到布局1;但如果它们在布局4上,我希望它们返回布局3

问题是,我一辈子都无法找出返回当前布局id的代码。我相信这是一个非常简单的问题,所以我希望有人能快速解决


感谢您的指点——出于某种原因,我在让getCurrentFocus()工作时遇到了困难,不过……可能是因为我自己在Java编程方面的无能

我将其分解为以下几点:

View thisView = getCurrentFocus();
if (thisView != null){
int viewID = thisView.getId();
toastLong(Integer.toString(viewID));
} else {
toastLong("thisView is null.");
}
现在的问题是这个视图总是空的——它不返回任何值。我尝试输入我正在使用的活动名称来代替我的活动(使其:

View thisView = myActivityName.getCurrentFocus();
但是IDE给了我以下错误,无法编译:

无法从类型活动对非静态方法getCurrentFocus进行静态引用


我显然遗漏了一些东西,我的假设是这是我遗漏的一个非常基本的东西。有指针吗?

您可以使用
ViewFlipper
保存布局并实现一个简单的状态机来控制转换。
另一个选择可能是为你的每个版面创建一个单独的
活动
,如果不确切了解你的应用程序正在做什么,很难判断。

我也遇到了这个问题,并找到了一个非常简单的解决方案。虽然这是一个老问题,但我会将它发布在这里,供那些正在为这个问题寻求帮助的人使用

只需在类中创建一个整数作为属性:

int layoutId;
然后重写setContentView方法并从参数中保存ID:

@Override
public void setContentView(int layoutResID) {
    this.layoutId = layoutResID;
    super.setContentView(layoutResID);
}

非常简单的技巧!

为什么每次调用
setContentView
?myActivity.getCurrentFocus().getId()时不自己在变量中跟踪它呢?我只选择将视图存储在变量中……虽然这不是最优雅的解决方案,但它是有效的。