4

このAndroidコードの意味は何ですか?

*+と空の違いは何ですか:

@*android:id

android_ics / packages / apps / Setting / res/layoutでこのように

<TextView android:id="@*android:id/timeDisplayForeground"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:singleLine="true"
    android:ellipsize="none"
    android:textSize="@dimen/crypt_clock_size"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@color/crypt_keeper_clock_foreground"
    android:layout_alignLeft="@*android:id/timeDisplayBackground"
    android:layout_alignTop="@*android:id/timeDisplayBackground"
    android:layout_marginBottom="6dip" />
4

2 に答える 2

7

*を使用すると、プライベートリソースにアクセスできます。プライベートリソースは、ファームウェアまたはスキンの更新の一部として将来名前が変更される可能性があるため、プライベートです。

これらのリソースが変更されたり、将来アプリが破損したりしないことがわかっている環境で作業している場合を除いて、これらのリソースを使用することはお勧めできません。

あなたの例では、プライベートリソースはシステムアプリによって参照されています。システムアプリでは、この参照が最も一般的に使用されています。

于 2013-03-27T01:35:14.010 に答える
2

私は以前に答えましたが、あなたの質問を誤解したかもしれません。プロジェクトには、リソースがリストされたR.javaという生成ファイルがあります。たとえば、ビューを作成してボタンを追加すると、その情報の一部がR.javaファイルに自動的に入力されます。Javaでは、これらのメンバーを使用して情報にアクセスします。ただし、XMLでは、ラベルまたはノードを参照してそれらにアクセスする必要があります。

@android:id refers to the public system member called "id"
@id refers to one that you've created
@+id says to create one called "id" (and what to set it to)
@*android:id refers to a private system member

参照:http ://developer.android.com/training/basics/firstapp/building-ui.html

于 2013-03-27T01:28:05.980 に答える