4

基本的な違いは、パラメータとしてsetId()取ることですが、取ることです。私は実際的なアドバイスについてもっと尋ねています。intsetTag()Object

プログラムで同じ要素をさらに生成するときは、ID を介して設定します。setId(++counter)これで、どの要素がonClickイベントを送信したかを知ることができます。を介して同じことを行うこともできますがsetTag(++counter)、以前のアプローチに慣れています。

では、いつ使用する必要がsetTag()あり、使用時に間違いを犯していsetId()ますか?

私のやり方が正しければ、setTag()追加のデータを渡したいときに使用すると思いますが、最初にこの問題についてコメントを残しておきます。

4

2 に答える 2

4

あなたの推測は正しいです。コード内でsetId()その特定のものを識別する方法のみが必要な場合、およびそれとともに追加情報を渡したい場合は、 を使用する必要があります(その追加データはそれを一意に識別する場合と識別しない場合があります)。メソッドのみを使用して + 追加データを含む複合オブジェクトを渡すこともできますが、この状況では、問題の 2 つのメソッドを呼び出すより単純な方法ではなく、特別なオブジェクトを作成する必要があります。ViewsetTagViewViewsetTagid

編集:クラス のドキュメントには、Viewこれら2つの方法に関する貴重な情報も含まれています。

ID

ビューには整数 ID が関連付けられている場合があります。これらの ID は通常、レイアウト XML ファイルで割り当てられ、ビュー ツリー内の特定のビューを検索するために使用されます。

タグ

ID とは異なり、タグはビューの識別には使用されません。タグは基本的に、ビューに関連付けることができる追加の情報です。これらは、ビューに関連するデータを別の構造体に配置するのではなく、ビュー自体に格納するための利便性として最もよく使用されます。

于 2012-05-04T07:55:22.807 に答える
1

ID(通常は一意の)整数型のプロパティであり、将来それらを認識するためだけに任意のビューに割り当てることができます。

TAG追加のデータを割り当てるために使用されるプロパティのタイプですObject(独自のオブジェクトによって可能性があります)。異なるオブジェクトは同様のタグを持つ場合があります。

したがって、ビューを一意に識別したいだけの場合は id を使用する必要があります (これはプリミティブ データ型であり、少量のメモリを消費するため)。一方、オブジェクトに追加情報も持たせたい場合は TAG を使用します。

于 2012-05-04T07:53:17.390 に答える