2013-07-29 22 views
5

Tutto quello che sto tentando di implementare una risorsa selezionabile per un selettore per una personalizzata ArrayAdapter. Sto ottenendo costantemente un android.content.res.Resources$NotFoundException: File res/drawable/list_selector.xml from drawable resource ID #0x7f020Impossibile trovare la risorsa disegnabile

Qualcuno potrebbe offrire suggerimenti?

Ho due file XML:

res/drawable/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> 

Infine, il mio codice carica la voce di elenco come segue:

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; 
    } 

risposta

8

Vedere se ciò che @Nebraska ha suggerito è utile.

Else, provate questo:

<?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

Grazie, il drawable l'ha fatto. Si prega di rimuovere il suggerimento logico, non è applicabile alla domanda. – Constantin

+0

@Constantin Fatto. – Vikram

+0

Qualche idea su come funzionano i selezionatori? Sto giocando con la modifica del colore di sfondo di un oggetto ListView in fase di esecuzione. Un approccio era usare 'setBackgroundColor()' a livello di programmazione, questo era facile e funzionante. Anche il selettore (in modo imprevisto) funziona ma non correttamente. Non sta impostando i colori corretti. Qualche idea su dove posso leggere sull'inflazione vista, in altre parole i selettori usano solo staticamente una volta all'inflazione o continuamente? Oppure le chiamate di default 'getView()' ne approfittano? – Constantin

1

Prima di tutto, inserirli nella cartella hdpi e quindi pulire il progetto. Aggiornerà tutto e l'errore dovrebbe sparire.

+0

Purtroppo, questo non ha funzionato. Pulito il progetto, disinstallato l'app, stesso errore. – Constantin

+0

Questi androide: le cose a colori potrebbero avere problemi con loro – Nebraska

+0

Darò uno scatto. – Constantin

Problemi correlati