なぜこの例外が発生するのでしょうか?
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");