2013-07-29 8 views
5

Alles, was ich versucht bin ArrayAdapter einen Selektor ziehbar Ressource für eine benutzerdefinierte zu implementieren. Ich bin immer konsequent eine android.content.res.Resources$NotFoundException: File res/drawable/list_selector.xml from drawable resource ID #0x7f020Drawable Ressourcen Not Found

Könnte jemand bieten Anregungen?

ich zwei XML-Dateien haben:

res/ziehbar/list_selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:state_checked="true" android:color="@android:color/white" /> 
    <item android:state_checked="false" android:color="@android:color/black" /> 
</selector> 

res/layout/list_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/casualty_text_view" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@drawable/list_selector"/> 

</LinearLayout> 

Schließlich lädt mein Code den Listeneintrag wie folgt:

public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     TCCC cur_object = getItem(position); 

     View cur_view = convertView; 
     if(cur_view == null) 
     { 
      System.out.println("Inflating!"); 
      cur_view = View.inflate(getContext(), R.layout.list_item, null); 
      String text_value = (cur_object.m_name.length() == 0) ? "New Casualty" : cur_object.m_name; 

      TextView name_box = (TextView)cur_view.findViewById(R.id.casualty_text_view); 
      if(name_box != null) 
       name_box.setText(text_value); 
     } 

     return cur_view; 
    } 

Antwort

8

sehen, ob was @Nebraska hat hilft vorgeschlagen.

Else, versuchen Sie dies:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:state_checked="true" android:drawable="@android:color/white" /> 
    <item android:state_checked="false" android:drawable="@android:color/black" /> 
</selector> 
+0

Danke, der Drawable hat es geschafft. Bitte entfernen Sie den logischen Vorschlag, es ist nicht auf die Frage anwendbar. – Constantin

+0

@Constantin Fertig. – Vikram

+0

Irgendeine Idee, wie Selektoren btw arbeiten? Ich experimentiere mit der Änderung der Hintergrundfarbe eines ListView-Elements zur Laufzeit. Ein Ansatz bestand darin, 'setBackgroundColor()' programmatisch zu verwenden, dies war einfach und funktionierte. Der Selektor funktioniert (unerwartet) auch, aber nicht richtig. Es werden nicht die richtigen Farben eingestellt. Irgendwelche Gedanken darüber, wo ich auf Sicht die Inflation, also lesen können, sind Selektoren nur statisch einmal verwenden, um die Inflation oder kontinuierlich? Oder nutzen Standard-'getView()' Aufrufe sie? – Constantin

1

Zuerst legen Sie sie in den Ordner hdpi und säubern dann das Projekt. Es wird alles aktualisiert und der Fehler sollte weg sein.

+0

Leider ist dies nicht funktionierte. Bereinigt das Projekt, deinstalliert die App, der gleiche Fehler. – Constantin

+0

diese Android: Farbe Dinge mit ihnen Probleme haben könnte – Nebraska

+0

Ich werde, dass ein Schuss. – Constantin

Verwandte Themen