2012-07-14 80 views
1

OK,我有一个问题我太糊涂了问正确但这里一展身手:语法错误,如果我不导入android.R(和语法错误,如果我这样做)

某处Android文档中它指出:

注意:Eclipse有时候喜欢在使用资源的文件顶部添加一个“import android.R”语句,特别是当您要求eclipse对排序或以其他方式管理导入时。这会导致你的制造破裂。注意这些错误的导入语句并删除它们。

我已经注意到此行为之前。第一次是非常糟糕的经历,因为我不明白发生了什么。无论如何,每当我注意到导入android.R;我只是删除它。

我最近的项目使用了最新的SDK,包括主 - 细节活动向导(创建分段)。我注意到在我的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)); 
} 

所以我加回来,它很好。问题是与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. 
} 

所以我的问题是,如果我不进口android.R那么的onCreate破产了,如果我做进口android.R然后onCreateOptionsMenu破产了。如果我这样做是诅咒,如果我不这样做,该死的。

:'(

+0

对不起,我完全阅读完整的问题。我认为拉格哈夫给出了正确的答案! – AAnkit 2012-07-14 18:35:17

回答

5

这通常不会发生,因为:

  1. 使用adt有一些错误
  2. 您正在使用从android.R文件的R资源。

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

R.layout.simple_list_item_activated_1 

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

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

+1

这工作,谢谢! – 2012-07-14 18:37:01