484

@id/との違いは何@+id/ですか?

@+id/プラス記号では+、新しいリソース名を作成してR.javaファイルに追加するように指示しますが、どう@id/ですか? のドキュメントからID: Android リソースIDを参照する場合、プラス記号は必要ありませんが、次のように Android パッケージの名前空間を追加する必要があります。

android:id="@android:id/list"

しかし、下の画像では、Eclipse は何の種類も示唆していません@android:id/

@/id および @+/id の提案を示す画像

@id/@android:id/同じですか?

4

12 に答える 12

91

+ 記号は、リソース ID のリストに ID を追加するためのショートカットです。それ以外の場合は、このような xml ファイルにそれらを含める必要があります

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item name="my_logo" type="id"/>
</resources>
于 2011-02-17T08:20:18.190 に答える
46

要するに

android:id="@+id/my_button"

+id プラス記号は、リソースに新しい ID を追加または作成するように Android に指示します。

その間

android:layout_below="@id/my_button"

すでに生成されたIDを参照するのに役立ちます..

于 2014-06-13T13:33:36.953 に答える
9

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

差出人:https ://developer.android.com/training/basics/firstapp/building-ui.html

于 2012-12-03T09:14:08.023 に答える
6

開発者ガイドから:

android:id="@+id/my_button"

文字列の先頭にあるアットマーク ( @) は、XML パーサーが ID 文字列の残りを解析して展開し、それを ID リソースとして識別する必要があることを示します。プラス記号 ( ) は、これが (ファイル内+の) リソースに作成して追加する必要がある新しいリソース名であることを意味します。R.javaAndroid フレームワークによって提供されるその他の ID リソースが多数あります。Android リソース ID を参照する場合、プラス記号は必要ありませんが、次のandroidようにパッケージ名前空間を追加する必要があります。

android:id="@android:id/empty"

于 2012-08-30T15:46:08.173 に答える
4

Androidは、XMLファイルの値が格納されているリソースと呼ばれるいくつかのファイルを使用します。

これで、XMLオブジェクトに@ id /を使用すると、valuesファイルにすでに登録されているIDを参照しようとしています。一方、@ + id /を使用すると、「+」記号で示されているように、値ファイルに新しいIDが登録されます。

お役に立てれば :)。

于 2012-09-08T11:14:56.060 に答える
4

Eclipse にはバグがあり、新しい を作成したばかりの場合@+id/..、プロジェクトをクリーン ビルドした後でもすぐに R.java ファイルに追加されないことがあります。解決策は、Eclipse を再起動することです。

これはできるだけ早く解決する必要があると思います。なぜなら、一部の開発者を混乱させて、構文に何か問題があると考えさせ、実際にデバッグするものが何もなくてもデバッグしようとする可能性があるからです (そして、経験からそうなるでしょう)。

于 2012-04-30T07:47:58.223 に答える
2

ビュー アイテムが同じ操作を実行する場合、複数のファイルのコンパイル中にファイルが 1 つの列挙しか作成@+idしないため、任意のレイアウトで for each エントリを使用できます。たとえば、各ページに同じ操作を実行する保存ボタンがある場合、各レイアウトで使用します。R.java ファイルには、button_save のエントリが 1 つしかありません。@+id/fooR.javaandroid:id="@+id/button_save"

于 2014-05-31T14:19:12.747 に答える