English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
androidはViewクラスをデザインする際、サポート情報を保存するためにsetTagを設計しました。/getTagメソッド。これが私にWinformデザインで各ControlがTagを持っていることを思い出させました。
今日は最近学んだAndroidのsetTagの問題点について話します。一般的には、ユニークなパラメータを持つsetTagメソッドを使用するだけで十分ですが、複数のデータを保存する必要がある場合があります。その場合、keyを持つオーバーロードされたsetTagを使用する必要があります。
ドキュメントは以下のように記述されています:「指定されたキーは、アプリケーションのリソース内で宣言されたIDであることが保証され、ユニークであることを確認する必要があります(IDリソースタイプを参照してください)。Androidフレームワークに属すると認識されたキーや、どのパッケージにも関連していないキーはIllegalArgumentExceptionがスローされます。」
ここでは、keyのユニーク性を保証する必要があることが説明されていますが、私たちがjavaの定数を使用してkeyを定義する場合、以下のようになります:private static final int TAG_ID = 1;)それでも以下のようなエラーが発生する場合があります:
java.lang.IllegalArgumentException: The key must be an application-特定のリソース ID
正しい解決策は以下の通りです:
res/values/strings.xmlにこのkey定数を以下のように定義します:
<resources> <item type="id" name="tag_first"></item> <item type="id" name="tag_second"></item> </resources>
以下のように使用してください:
imageView.setTag(R.id.tag_first, "Hello"); imageView.setTag(R.id.tag_second, "Success");
これでAndroid setTagメソッドのkeyの問題に対する解決策が説明されました。皆様の本サイトへのサポートに感謝します!
声明:本文の内容はインターネットから提供され、著作権者はすべて所有しています。コンテンツはインターネットユーザーによって自発的に貢献し、アップロードされています。本サイトは所有権を持ちません。また、人工編集は行われていません。著作権侵害を疑われる内容が見つかりましたら、以下のメールアドレスまでご連絡ください:notice#oldtoolbag.com(メール送信時は、#を@に変更してください。)報告を行い、関連する証拠を提供してください。一旦確認が取れましたら、本サイトは即座に侵害を疑われるコンテンツを削除します。