SORU
18 Mayıs 2010, Salı


Anahtar uygulamaya özgü kaynak kimliği olmalı

Neden bu Durum alabilirim?

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)

söz konusu hattı

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

ve olarak tanımlanır:

private static final int TAG_ONLINE_ID = 1;

CEVAP
22 ŞUBAT 2013, Cuma


Partiye biraz geç kaldım ama bu sorunu kendim bugün rastladım ve bir cevap verelim dedim. Bu cevap diğer cevaplar bir derleme biraz, ama bir bükülme ile. Öncelikle, kimliği, hem oldu işaret ederek Diğerleri, olamaz sabit olarak tanımlanan kod (gibi private static final int MYID = 123) veya başka bir int bu tanımladığınız gibi bir alan bir yerde.

Kimliği önceden derlenmiş benzersiz bir kimlik, sadece values/strings.xml sizi dizeleri için olanlar (yani R. string.gibi olmalı Hoşgeldiniz). Daha fazla bilgi için http://developer.android.com/guide/topics/resources/available-resources.html http://developer.android.com/guide/topics/resources/more-resources.html bakın.

Benim önerim yeni bir dosya values/tags.xml adı oluşturma ve yazma

    <resources xmlns:android="http://schemas.android.com/apk/res/android">
      <item name="TAG_ONLINE_ID" type="id"/>
    </resources>

Daha iyi EtienneSky önerdiği gibi strings.xml bunu koymak yerine ayrı bir dosya oluşturmak için olduğunu düşünüyorum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dylan Brenan

    Dylan Brenan

    22 Aralık 2009
  • megablueblaster

    megablueblas

    23 HAZİRAN 2006
  • Triune Films

    Triune Films

    9 ŞUBAT 2006