2012-04-16 8 views
3

root以外のパッケージでリソース要素を使用する場合は、自分でR class(Android Rクラスではない)をインポートする必要があります。例えば、非ルートパッケージでリソースを使用するとRクラスをインポートする必要があるのはなぜですか?

ルートパッケージcom.example.testとファイルMain.java

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

R classをインポートする必要はありません。私が非ルートパッケージにルートからJavaファイルを移動するとき

は、私はそこSomething.javaに別のパッケージ、com.example.test.somethingと新しいクラスを作成すると、私はR.class

import com.example.test.R; 

//...other code... 

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

自分自身をインポートする必要がありこれが自動的に行われます。

なぜこれが重要なのですか?

+1

'R'クラスはアプリケーションパッケージ' com.example.test'にあります。パッケージ宣言をチェックアウトしてください。他のパッケージから参照する場合は、他のクラスと同じように、そのパッケージをインポートするか、その名前を完全修飾する必要があります。 –

+0

@PhilippReichartありがとう!私は答えとしてマークすることができるように返信を投稿できますか? – sandalone

+0

あなたは、乾杯:) –

答えて

8

Rクラスは、アプリケーションパッケージcom.example.testに存在します。パッケージ宣言を確認してください。他のパッケージから参照する場合は、他のクラスと同じように、そのパッケージをインポートするか、その名前を完全修飾する必要があります。

関連する問題