1

我怎样才能在 R 另一个 XML 文件中对布局进行分类?

它应该是自动的,因为我有新的资源可以资源,但事实并非如此。有人知道我做错了什么吗?

我打开一个活动,现在我想打开另一个将与另一个 XML 示例一起使用的活动。我有菜单和 main.xml。现在我想使用这种方法进行另一个名为 gamescreen 的活动:

newGameButton.setOnClickListener(new OnClickListener() {

            public void onClick(View view) {
                Intent i = = new Intent(this, gameScreen.class);
                startActivity(i);
            }

}

我想移动到另一个“页面”到另一个名为 gameScreen 的活动,该活动应该与名为 gameScreen.xml 的 XML 相关联。

但在其 onCreate 中:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.gameScreen);

}

并且 gameScreen 不是 R 文件的成员。

主要问题是,当我将资源添加到布局时,例如 newxmlfile.xml,R 文件不做任何工作并保持这种状态。

public static final class layout {
    public static final int main=0x7f030000;
}where it should have been:
public static final class layout {
    public static final int main=0x7f030000;
    public static final int newxmlfile=0x7f031000;
}
4

5 回答 5

0

如果您的文件确实存在于res/layout文件夹中,并且可能您在不同的包中,则必须导入对 的引用R,并删除对android.R

import com.mypkg.R;

另外不要忘记将类gameScreen作为活动添加到清单文件中。

编辑

您应该使用向导重新创建 XML 文件,并确保那里一切正常。与位于 SDK 安装/samples/目录中的一些示例进行比较。

于 2010-05-23T11:35:03.377 回答
0

您必须将新活动添加到 AndroidManifest.xml:

...
<activity 
    android:name=".gameScreen">
</activity>

编辑:
这是假设 gameScreen 是新活动的类名。另外,据我了解,gameScreen 是一个位于 res/layout.xml 中的 XML 文件。
的文件名gameScreen.xml必须小写:gamescreen.xml.

于 2010-05-23T11:36:34.170 回答
0

使用 aapt(exe is present in platforms/<platform>/tools/aapt) 命令生成 R 文件:

aapt package -f -M ${manifest.file} -F ${packaged.resource.file} -I ${path.to.android-jar.library} -S ${android-resource-directory} [-m - J ${folder.to.output.the.R.java}]

它将生成一个新的 R.java 文件。如果有任何错误,它也会向您显示。

于 2010-05-23T14:48:23.003 回答
0

在 Eclipse 中:menu-project-clean-选择你的项目。

如果没有,请检查 gameScreen.xml 是否在 res 布局文件夹下。

于 2010-05-23T15:19:44.027 回答
0

我找到了答案。不知何故 Eclipse 做到了

 import Android.R;

这导致了 R 变量的歧义。

于 2010-05-24T11:52:27.883 回答