2010-11-27 8 views
12

私は多くのAndroidドキュメントを読んできましたが、まだ「@ + id」というid値の接頭辞が何を意味しているかについてはまだ説明していません。私は "@ストリング"とそのバリエーションを知っていますが、 "+"とのバリエーションはありません。私に答えを与えることに加えて、あなたはAndroidのドキュメントでこれが文書化されている場所を教えてくれますか?「@ + id」は何を意味していますか?

答えて

39

プラス記号は、IDが存在しない場合に作成する必要があることを示します。

これは、レイアウトの新しいビューを定義するとき@+id/fooを使用して、コードからそれを参照するために、別のレイアウトの一部(RelativeLayout階層で、例えば)またはR.id.fooからビューを参照するために@id/fooを使用するのが一般的です。


UPDATE:ドキュメントはここにある:Declaring Layout - Attributes - ID JavaコードにAndroidのXMLレイアウト要素をリンクするための構文です

3

。 TextViewにテキストを表示したい場合は、これを行う必要があります。

ステップ一方が - そして

<TextView 
android:id="@+id/SaveResult" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="SaveResult" 
android:layout_x="16px" 
android:layout_y="190px" 
> 
</TextView> 

レイアウトを定義し、コードでは、変数iにレイアウトをリンクするために、@ + IDを使用します。 @ + idをデータベースの外部キーと考えてください。

TextView lblSaveResult = (TextView)findViewById(R.id.SaveResult); 

今すぐ使用できます。私はテキストを割り当てると、それはそれを置くために場所を確認するために、@ + IDを使用し、また、色、大きさ、など。

lblSaveResult.setText("This text is now on the screen"); 

申し訳ありませんが、ドキュメントは、このためです私は知りません...

1

XMLからのリソースオブジェクトを参照する場合は、アットマーク(@)が必要です。それにはリソースタイプ(この場合はid)が続きます。

リソースタイプの前にプラス記号(+)が必要なのは、リソースIDを初めて定義するときだけです。アプリケーションをコンパイルすると、SDKツールはID名を使用して、プロジェクトのgen/R.javaファイルにUI要素を参照する新しいリソースIDを作成します。一度この方法で宣言されたリソースIDで、IDへの他の参照には正符号は必要ありません。プラス記号は、新しいリソースIDを指定する場合にのみ必要で、文字列やレイアウトなどの具体的なリソースには必要ありません。

0

プラス記号は、存在しない新しいIDを作成していることを示します。例えば ​​"@ + id/xyz"などです。 "@ id/xyz"と書くと、レイアウトの別の部分からビューを参照していることを示します。

関連する問題