如果我不导入android.R语法错误(如果我这样做,语法错误)

Gee*_*ugs 1 java eclipse android android-fragments

好吧,我有一个问题,我很困惑,不能正确地问,但这是一个去:

它在Android文档中的某处说明:

注意:Eclipse有时喜欢在使用资源的文件顶部添加"import android.R"语句,尤其是当您要求eclipse对排序或以其他方式管理导入时.这会导致你的品牌破产.注意这些错误的import语句并删除它们.

我以前注意到了这种行为.第一次是一次非常糟糕的经历,因为我无法理解发生了什么.无论如何,每当我注意到导入android.R; 我只是删除它.

我最近的项目使用了最新的SDK,包括Master - Detail Activity向导(创建片段).我注意到在我的ListFragment源文件中导入android.R; 然后删除它打破了它,因为它显然需要android.R在onCreate中使用内置布局"simple_list_item_activated_1"(http://developer.android.com/reference/android/R.layout.html#simple_list_item_activated_1).

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setListAdapter(new ArrayAdapter<DummyContent.DummyItem>(getActivity(),
            R.layout.simple_list_item_activated_1,
            R.id.text1,
            DummyContent.ITEMS));
}
Run Code Online (Sandbox Code Playgroud)

所以我把它添加回去,没关系.问题是android.R包括我看不到任何我定义的XML东西.在我的情况下,我正在尝试使用我在onCreateOptionsMenu中创建的菜单.

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    //MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_checklist_list, menu);
    R.layout.
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如果我不导入android.R然后onCreate是破坏,如果我导入android.R然后onCreateOptionsMenu破了.如果我这样做该死的,如果我不这样做该死的. 哭声

:'(

Rag*_*ood 5

这通常会发生,因为:

  1. 带ADT的Eclipse有一些bug.
  2. 您正在使用android.R文件中的R资源.

要解决此问题,请删除该import android.R语句.现在会出现一些错误,如果错误是因为#2,那么会出现一些新错误.滚动到新错误.他们应该是这样的行:

R.layout.simple_list_item_activated_1
Run Code Online (Sandbox Code Playgroud)

现在只需前缀android.到该R变量,错误就会消失.

此外,每次发生与R文件相关的错误时,都应该清理项目.