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

  • CaptainDisillusion

    CaptainDisil

    18 EYLÜL 2007
  • George McCarron

    George McCar

    29 Mayıs 2013
  • LiquidMusick

    LiquidMusick

    23 Aralık 2010