質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • Android

    6633questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    3791questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

setContentViewで指定するIDはどこに書かれているのか。

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 225

tkmnusr

score 167

 前提・実現したいこと

setContentViewでレイアウトXMLファイルのIDを指定すると思うのですが、
このIDはどこに書かれているのでしょうか?
レイアウトXMLファイルを生成した際に、そのXMLにIDが割り振られると思うのですが、
そのIDを管理しているファイルを知りたいです。
ご教示お願い致します。

 試したこと

こちらのサイトを参考にしようとしましたが、わかりませんでした。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

公式の情報にあります。レイアウト - XML リソースの読み込み

アプリケーションをコンパイルすると、各 XML レイアウト ファイルは View リソースにコンパイルされます。 Activity.onCreate() コールバックの実装で、アプリケーション コードからレイアウト リソースを読み込んでください。これを行うには、setContentView() を呼び出し、R.layout.layout_file_name の形式でレイアウト リソースへの参照を渡します。たとえば、XML レイアウトが main_layout.xml として保存される場合、次のようにしてアクティビティに読み込みます。

です。AndroidStudio で作成した場合、app/src/main/res/layout/activity_main.xmlのような名前のファイル名になり、これがIDのもとになります。

※参考にされたサイトの情報はAndroidの開発情報としてはEclipseが挙げられていたりで、もうかなり古いものとなります。公式その他、新しいものを参考にすることをお勧めします。
Android 入門 | Android Developers

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/29 08:55 編集

    ご回答ありがとうございます。
    自分の解釈が間違ってないか確認したいのですが、ご提示いただいた公式リファレンス見た所、
    「XMLレイアウトがmain_layout.xmlとして保存される場合は、R.layout.の後に指定するIDは、main_layoutとなる命名規則になる(IDの命名規則は、main_layout.xmlの場合、そのIDはmain_layoutとなる)」ということでしょうか?

    キャンセル

  • 2018/05/29 08:56

    はい、そのとおりです。

    キャンセル

  • 2018/05/29 08:58

    すみません、さらに確認なのですが、
    特に「main_layout.xmlのID⇔main_layout」と関連付けが明記されているファイルは無いということでしょうか?

    キャンセル

  • 2018/05/29 09:12

    関連付けのファイルは存在していて、ビルドする過程で自動で生成されるR.javaというファイル内でリソースIDとして自動的に宣言、採番されます。
    例えばpackage exmaples.products.test31のMainActivityで、レイアウト用xmlファイルがmain_activity.xmlですと、
    app/build/generated/source/r/debug/examples/products/test31/R.java
    の中で、public static final int main_activity=0x7f09001b;
    となります。(Android Studio 3.1.2 での例)

    キャンセル

  • 2018/05/29 09:21

    ご回答ありがとうございます。
    大変勉強になりました。
    ありがとうございます。

    キャンセル

  • 2018/05/29 09:25

    思い出してみるとこの辺の事情はAndroid Studioだけでなく以前のEclipseでもそうだった気がしますが、要はAndroid SDKが
    ビルドの過程でレイアウトや文字列リソースのファイルの内容をパースし、リソース用のR.javaに仕立てあげているというかたちになります。

    キャンセル

  • 2018/05/29 09:27

    ご回答ありがとうございます。
    なるほど、そういう順序なのですね。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.48%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    xmlからエミュレータに反映させる方法

    あまりに初心者すぎの質問で申し訳ございません。 xmlファイルでボタンABCを作成することに成功しましたが エミュレータに反映させる方法がわかりません。 よければ教えてください。

  • 受付中

    Android 開発 レイアウト XML Java

    Android StudioでAndroidアプリ作ってます。 XMLで、textViewを二つ表示させています。     <TextView         android:i

  • 受付中

    Android JavaとXMLの共存

    Androidアプリ開発で         TextView tv = new TextView(this);         tv.setText(String.valueOf(

  • 解決済

    Listviewからの画面遷移

    ListViewを使ったとき、各要素から別のアクティビティに遷移について、 以前OnItemClickListenerを使った方法を答えてくださったのですが、その方法でやってみると

  • 解決済

    android テトリス ブロックの操作

    テトリスのアプリを作成しています。 現在はパソコンのキーボードでブロックを操作しているのですが、キーボード操作ではなくボタン操作に変更したいと考えています。 ボタンを取り付

  • 受付中

    activity_main.xmlで表示したい

    回転をした立体を表示するアプリを作っているのですが、 MainActivity.javaに GLView view = new GLView(this); setConte

  • 解決済

    (AutoFitTextureView) findViewById(R.id.texture);//...

    (AutoFitTextureView) findViewById(R.id.texture);//nullになります。 何故なのでしょうか? xmlファイルでは、このように指

  • 解決済

    レイアウトで、R.layout.activity_mainを使用しない書き方について

    setContentView(R.layout.activity_main); 上記のような書き方ではなく、自分で作成したレイアウトをsetContentViewの引数に指定して

同じタグがついた質問を見る

  • Android

    6633questions

    Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

  • Android Studio

    3791questions

    Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。