キーはアプリケーション固有のリソースIDである必要があります。質問する

キーはアプリケーション固有のリソースIDである必要があります。質問する

なぜこの例外が発生するのでしょうか?

05-18 20:29:38.044: ERROR/AndroidRuntime(5453): java.lang.IllegalArgumentException: The key must be an application-specific resource id.
05-18 20:29:38.044: ERROR/AndroidRuntime(5453):     at android.view.View.setTag(View.java:7704)
05-18 20:29:38.044: ERROR/AndroidRuntime(5453):     at com.mypkg.viewP.inflateRow(viewP.java:518)

問題の行は次のとおりです。

((Button) row.findViewById(R.id.btnPickContact)).setTag(TAG_ONLINE_ID,objContact.onlineid);

そして私はそれを次のように定義します:

private static final int TAG_ONLINE_ID = 1;

ベストアンサー1

setTag(int, Object) を使用できない理由は、Android では 'int' 引数に事前にコンパイルされた一意の ID が必要になるためです。

String.xml に「firstname」と「secondname」という 2 つの一意のエントリを作成し、以下のように使用します。

imageView.setTag(R.string.firstname, "Abhishek");
imageView.setTag(R.string.lastname, "Gondalia");

おすすめ記事