1. ホーム
  2. android

[解決済み] キーはアプリケーション固有のリソースIDでなければなりません。

2022-05-04 16:27:30

質問

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

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;

解決方法は?

タグのIDは一意でなければならないので、一意性を保証するためにリソースファイルで作成されたIDにしたい。

もし、ビューに含まれるタグが1つだけなら、次のようにすればよいでしょう。

setTag(objContact.onlineid);