2017-02-16 6 views
0
<TextView 
    android:id="@+id/label" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@+id/label" 
    android:textSize="20px" > 
</TextView> 

これはカスタムレイアウトのListActivityのパートコードです。したがって、動的に値を設定できます。なぜandroid:text = "@ + id/label"ですか?それ以外の用途はありますか?Android:なぜtextViewのテキスト属性値がidですか?

答えて

0
<TextView 
    android:id="@+id/label" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@+id/label" <-- wrong 
    android:text="@string/label" <-- get text from string.xml 
    android:text="Label"  <-- direct text 
    android:textSize="20px" > 
</TextView> 
0

ZeroOneの回答に同意します。彼に追加あなたは、動的に、あなたはそれを参照するために、ここで使用しているあなたのアクティビティクラス

TextView tv = (TextView) findViewById(R.id.label); 

あなたはあなたの中に使用するIDは、レイアウト内部のTextView の値を変更することについて語りました。 Androidは(

自動すべてのオブジェクト、文字列の参照、資産、レイアウト、色、スタイルとIDのユニーク進コードを持っているR.class

ファイルを生成しているため、あなたはR.id.labelを使用しているそれらのほとんどあなたは

(それはint型のリソースIDです)

R.id.labelを言っているので、最終的な静的)などがありますRクラスに3210

ゴー - > ID - あなたは

android:text="@+id/label" 

を使用する場合、それは単に置くあなたのレイアウトファイル内場合>変数名

はあなたのTextView

tv.setText("Hello World"); 

に値を設定するにはtextviewに設定するテキストの値は@+id/labelです。あなたはどちら@+id/labelを表示する場合を除き、あなたの計画はZeroOneが 言ったようにどちらか一方その後、あなたのレイアウトファイル自体にラベルとしてのTextViewの値を設定し

android:text="label" 

または

を使用する場合は、実際に..

をも意味がありません

android:text="@string/my_label" // for this to work you need to add reference in strings.xml inside your res folder 
関連する問題