我想应该使用Android-Manifest.xml文件或布局文件夹中的某些内容来完成某些操作。我是Android的新手,所以我不知道应该写些什么。
public class AndroidPong extends Activity implements OnClickListener {
static String tag;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super .onCreate(savedInstanceState);
tag = getResources().getString(R.string.app_name);
fullScreen();
splashScreen();
}
@Override
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
return super .onCreateDialog(id);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
return super .onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
return super .onOptionsItemSelected(item);
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super .onStop();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super .onDestroy();
}
void startGame() {
setContentView(R.layout.game);// error
this .findViewById(R.id.Button01).setOnClickListener(this );//error
this .findViewById(R.id.Button02).setOnClickListener(this );//Error
}
void splashScreen() {
setContentView(R.layout.splash);// error
this .findViewById(R.id.pongtable).setOnClickListener(this );//error
}
void gameMenu() {
}
void fullScreen() {
this .requestWindowFeature(Window.FEATURE_NO_TITLE);
this .getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
public static void debug(String debug) {
Log.d(tag, debug);
}
<?xml version="1.0" encoding="utf-8"?>
<absoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
<Button android:id="+id/Button02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
</absoluteLayout>
答案 0 :(得分:3)
如果您正在使用eclipse,则已经提出了这个问题
答案 1 :(得分:3)
看起来你有两种不同类型的错误。我将首先在你的问题标题中提到你所提到的那个。这与资源ID有关。
R.id无法解决
当编译器找不到您为某些资源引用的资源(如字符串,布局,菜单等等)时,会发生该错误。这通常是您可以尝试的一些事情的结果。
首先,请确保您使用正确的名称来引用您的资源ID。例如,你有R.id.Button01。如果您使用它来引用按钮的res id,请确保XML中的按钮具有属性android:id="@+id/Button01"
其次,确保XML布局文件中没有错误。如果还有其他错误,那么通常Eclipse(我假设您正在使用Eclipse)将无法识别该项目的资源ID已创建。
如果您看不到这样的明显错误,请尝试清理您的构建。通过转到Project - &gt;来做到这一点。清洁...
其他错误与您的OnClickListeners
有关this .findViewById(R.id.Button01).setOnClickListener(this );//error
this .findViewById(R.id.Button02).setOnClickListener(this );//Error
和
this .findViewById(R.id.pongtable).setOnClickListener(this );//error
此错误更直接。您正在错误地设置单击侦听器。 setOnClickListener方法将OnClickListener作为参数。如果要设置新的,则需要传入构建的新OnClickListener。你可以这样做......
this.someButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// whatever the button will do
}
});
答案 2 :(得分:2)
我今天也遇到了这个问题。我检查了所有上述答案,但没有任何效果。在我看来,R.java文件没有正确重新生成(即使在Project / Clean命令之后)。没有为我的项目创建“R.id”类。
我终于通过在main.xml布局文件上使用图形布局视图来解决问题(单击main.xml编辑器窗口左下角的Graphical Layout选项卡)。
我将一个虚拟字段拖入布局(包含一个id)并保存。巴姆!现在Eclipse正在按预期生成R.id类。我从main.xml中删除了虚拟字段,一切都是应该的。
答案 3 :(得分:1)
我有两张用大写和小写命名的图像。它工作正常,我在我的项目中使用它们。我建了几次,它从未关心过。无论出于什么原因它都不再喜欢它们了。
它在控制台中显示了这一点:
res \ drawable-hdpi \ Image.png:文件名无效:必须仅包含 [A-Z0-9 _]
只需取出大写字符就可以了。 我猜测其他资源错误也会出现在控制台中。
注意:您还会在“问题”窗口中看到如下错误:
Unparsed aapt错误!检查控制台输出。
答案 4 :(得分:0)
一些技巧:
您之前可以使用R.id,然后清理项目并再次构建它。我不建议自动构建。
在项目属性中,您可以在/ src文件夹之前订购/ gen文件夹。这将导致首先编译gen文件夹,因此将首先生成R并且可以反映您的更改。
确保您没有任何其他类型的编译错误。