1. ホーム
  2. android

[解決済み] AndroidのクラスRとは何ですか?

2022-11-28 21:09:50

質問

AndroidStudioで、空のアクティビティを使用してプロジェクトを作成すると、次のようなコードが MainActivity.java ファイル内に次のようなコードがあります。

package my.company.my_proj;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

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

という暗号のようなクラスがあるところ R というクラスが使われています。このクラスは何のためにあるのでしょうか R ?

どのように解決するのですか?

R を含むクラスです。 の定義が含まれるクラスです。 . これは の名前空間で、アプリケーションパッケージの .

たとえば、マニフェストでパッケージ名を com.foo.bar であるとすると R クラスが生成され、すべてのリソースのシンボルが com.foo.bar.R .

一般に R を扱うクラスです。

  1. のフレームワークリソースは android.R
  2. 自分の名前空間にある自分の

という名前になっています。 R というのは、これは R を意味し、人々に長いものを入力させる意味はありません。特に、その後にかなり長いシンボル名が続くのはよくあることで、かなりの量の行の折り返しが発生する可能性があるからです。