如何在R另一个XML文件中进行类布局?
它应该是自动的,因为我有新的资源来res,但事实并非如此。 有人知道我做错了吗?
我打开一个活动,现在我想打开另一个可以使用另一个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;
}
答案 0 :(得分:0)
如果您的文件确实存在于res/layout
文件夹中,并且您可能位于其他软件包中,则必须将引用导入R
,并删除对android.R
<的任何引用/ p>
import com.mypkg.R;
另外,不要忘记将类gameScreen
作为活动添加到清单文件中。
修改强>
您应该使用向导重新创建XML文件,并确保一切正常。与位于SDK的安装/samples/
目录中的一些示例进行比较。
答案 1 :(得分:0)
您必须将新活动添加到AndroidManifest.xml:
...
<activity
android:name=".gameScreen">
</activity>
修改强>
这是假设gameScreen是新活动的类名。
另外,根据我的理解,gameScreen是一个位于res / layout中的XML文件
gameScreen.xml
的文件名必须为小写:gamescreen.xml
。
答案 2 :(得分:0)
使用aapt(exe存在于platforms /&lt; platform&gt; / 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文件。如果有任何错误,那么它也会显示出来。
答案 3 :(得分:0)
在Eclipse中:menu-project-clean-选择你的项目。
如果没有,请检查gameScreen.xml是否在res布局文件夹下。
答案 4 :(得分:0)
我找到了答案。 以某种方式Eclipse做了
import Android.R;
导致R变量模糊不清。