質問: **activity_main.xmlのTextView に android:text と tools:text があるのですが、それぞれどういう役割ですか?** ・デザインタブで表示される内容は、tools:text? ・実際のアプリで表示される内容は、android:text? ・デザインタブで、実際のアプリで表示される内容を表示させるためには、両方指定する必要がある?
回答: > > ・デザインタブで表示される内容は、tools:text? > > > `tools:text`で指定したテキストは、Android Studioのレイアウトエディタで表示されます。 実際のアプリでは表示されません。 > > ・実際のアプリで表示される内容は、android:text? > > > `android:text`で指定したテキストは、Android Studioのレイアウトエディタでも実際のアプリでも表示されます。 > > ・デザインタブで、実際のアプリで表示される内容を表示させるためには、両方指定する必要がある? > > > どちらでも表示するのであれば、`android:text`で指定すればOKです。 `tools:text`は動作時に表示内容が変わるなど、レイアウトの定義時には`android:text`に表示するものが決まらない場合に、レイアウトエディタで見た目を確認することに利用できます。 例:回答の結果が正解か不正解か表示する`TextView`の場合 ``` ``` ``` private void answered(Question q, Answer a) { TextView answerView = findViewById(R.id.answer) if (q.isCorrect(a)) { answerView.setText("正解"); } else { answerView.setText("不正解"); } } ``` 実動作時には、`answered()`の処理が実行されるまでは`TextView`には何も表示されていません。 レイアウトエディタ上では「不正解」が表示されていて、入力される文字によってレイアウト崩れが起きているかなどを動作させる前に確認することができます。 参考: