当我在非root包中使用资源时,为什么必须导入R类?

时间:2012-04-16 10:17:50

标签: android

每当我想在非root包中使用任何资源元素时,我都必须导入自己的R class(不是Android R类)。例如,

根包com.example.test和文件Main.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

无需导入R class

当我创建另一个包com.example.test.something以及Something.java中的新类时,我必须导入我自己的R.class

import com.example.test.R;

//...other code...

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

当我将Java文件从root用户移动到非root用户包时,会自动发生这种情况。

为什么这么重要?

1 个答案:

答案 0 :(得分:8)

您的R课程位于您的应用程序包com.example.test中 - 请查看它的包裹声明。如果您想从任何其他包引用它,您需要导入它或完全限定其名称,就像任何其他类一样。