42410
**activity_main.xmlのTextView に android:text と tools:text
があるのですが、それぞれどういう役割ですか？**  
・デザインタブで表示される内容は、tools:text？  
・実際のアプリで表示される内容は、android:text？  
・デザインタブで、実際のアプリで表示される内容を表示させるためには、両方指定する必要がある？
CC BY-SA 3.0
2018-03-15T05:46:56.693
42407
2018-03-15T06:28:02.660
7886
question
android-studio
TextView の android:text と tools:text について
> ・デザインタブで表示される内容は、tools:text？

`tools:text`で指定したテキストは、Android Studioのレイアウトエディタで表示されます。  
実際のアプリでは表示されません。

> ・実際のアプリで表示される内容は、android:text？

`android:text`で指定したテキストは、Android Studioのレイアウトエディタでも実際のアプリでも表示されます。

> ・デザインタブで、実際のアプリで表示される内容を表示させるためには、両方指定する必要がある？

どちらでも表示するのであれば、`android:text`で指定すればOKです。

* * *

`tools:text`は動作時に表示内容が変わるなど、レイアウトの定義時には`android:text`に表示するものが決まらない場合に、レイアウトエディタで見た目を確認することに利用できます。

例：回答の結果が正解か不正解か表示する`TextView`の場合

```

    <TextView
        android:id="@+id/answer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        tools:text="不正解"/>
    
```

```

    private void answered(Question q, Answer a) {
        TextView answerView = findViewById(R.id.answer)
        if (q.isCorrect(a)) {
            answerView.setText("正解");
        } else {
            answerView.setText("不正解");
        }
    }
    
```

実動作時には、`answered()`の処理が実行されるまでは`TextView`には何も表示されていません。  
レイアウトエディタ上では「不正解」が表示されていて、入力される文字によってレイアウト崩れが起きているかなどを動作させる前に確認することができます。

参考：<https://developer.android.com/studio/write/tool-
attributes.html#tools_instead_of_android>
CC BY-SA 3.0
2018-03-15T06:28:02.660
42410
2018-03-15T06:28:02.660
20272
42407
answer