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 #0x7f020
Impossibile 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;
}
Grazie, il drawable l'ha fatto. Si prega di rimuovere il suggerimento logico, non è applicabile alla domanda. – Constantin
@Constantin Fatto. – Vikram
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