我的 R.id.<name> 无法解析

My R.id.<name> wont resolve

我的问题与下面 linked 的问题类似。 XML's not being resolved/recognized by Eclipse?

我正在编写代码以尝试使用 R.id。但它找不到我使用的 ID。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/contactlayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    private class ContactListAdapter extends ArrayAdapter<Contact>{
        public ContactListAdapter() {
            super (MainActivity.this, R.layout.contactlayout, Contact); <!--wont find contactlayout-->

我试图删除 "import android.R;",注释掉 R 行,然后重新构建它。 link 没有说明从哪里导入 R,所以当我这样做时问题又回来了。感谢您的帮助。

PS 如果我没有这样做 post,请告诉我。这是我的第一次。

它不会编译,因为 R.layout class 指的是 XML 文件的名称,而不是文件中的父视图。所以会是

private class ContactListAdapter extends ArrayAdapter<Contact>{
        public ContactListAdapter() {
            super (MainActivity.this, R.layout.nameofthexmlfile, Contact);

您项目的 R 将在 Java 包中生成,其名称与清单中的 Android 包名称相同。所以如果Android包名是com.example.myproject,类不在Java包com.example.myproject中需要import com.example.myproject.R;.

请注意,您项目的 Android 包名称不一定对应于您项目中的任何 Java 包。它们通常只是对应,因为它们都遵循相同的命名约定。

感谢大家的帮助。结果是我的布局之一有错误导致了问题,我在应该导入 com.someName.MyApp.R 的时候导入了 android.R。我还找到了我的 R.java 文件,它在 gen/myapp 下。希望这可以帮助别人。再次感谢。