android:为什么我不能引用我的布局(也许在移动它之后)?



与一些stackoverflow trolling我已经能够得到一个android弹出视图工作,但我试图移动布局,它现在不工作。我有一个弹出视图在res/layout- keysexsed -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

(edit1)

R.java中的类定义:

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

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

如果您更接近r.j java,您会发现布局类包含了对布局的引用和xml文件的名称。所以,你应该使用r。layout。

最新更新