1

通过一些stackoverflow trolling,我已经能够让一个android 弹出视图工作,但我试图移动布局,但它现在不起作用。我在 res/layout-keysexposed-qwerty/login_popup2.xml 中有一个弹出视图。

其布局包含以下内容:

android:id="@+id/login_popup2"

这是我尝试在 Activity 中引用它的地方:

LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
android.view.View popview = inflater.inflate(R.layout.login_popup2, null, false);

这失败了,但有以下例外:

FATAL EXCEPTION: main
android.content.res.Resources$NotFoundException: Resource ID #0x7f030001
at android.content.res.Resources.getValue(Resources.java:892)
at android.content.res.Resources.loadXmlResourceParser(Resources.java:1869)
at android.content.res.Resources.getLayout(Resources.java:731)
at android.view.LayoutInflater.inflate(LayoutInflater.java:318)

如何以这种方式引用布局?当我把它放进去时,我认为它正在工作,res/layout-keysexposed/但我移动了它,在 Eclipse 中做了一个干净的项目,甚至停止并启动了我的 Android

(编辑1)

这是来自 R.java 的类定义:

public static final class layout {
    public static final int activity_view=0x7f030000;
    public static final int login_popup2=0x7f030001;
}
4

2 回答 2

1

布局文件的 id 是它的文件名和目录,不包括 .xml 扩展名。您的 id 是布局中某些元素的 id。忽略它可能被称为 LinearLayout 或 RelativeLayout 的事实——它们都是视图。

于 2013-03-03T19:12:43.120 回答
0

如果您仔细研究 R.java,您会发现布局类包含对带有 xml 文件名称的布局的引用。所以,你应该使用 R.layout ..

于 2013-03-03T19:34:17.247 回答