2013-07-29 4 views
5

Все, что я пытаюсь реализовать ресурс для выделения селектора для пользовательского ArrayAdapter. Я постоянно получаю android.content.res.Resources$NotFoundException: File res/drawable/list_selector.xml from drawable resource ID #0x7f020Drawable Resource Not Found

Может ли кто-нибудь предложить предложения?

У меня есть два XML-файлы:

Рез/рисуем/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> 

Рез/макет/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> 

Наконец, мой код загружает элемент списка следующим образом:

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

ответ

8

Посмотрите, что подсказывает @Nebraska.

Else, попробуйте следующее:

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

Спасибо, вытащил его. Удалите логическое предложение, оно не применимо к вопросу. – Constantin

+0

@Constantin Done. – Vikram

+0

Любая идея, как работают селекторы кстати? Я играю с изменением цвета фона элемента ListView во время выполнения. Один из подходов заключался в том, чтобы программировать «setBackgroundColor()», это было легко и сработало. Селектор (неожиданно) также работает, но не корректно. Он не устанавливает правильные цвета. Любые мысли о том, где я могу читать по инфляции инфляции, другими словами, селектора используют только статически один раз при инфляции или непрерывно? Или используют ли 'getView()' вызовы по умолчанию? – Constantin

1

Прежде всего, поместите их в папку hdpi, а затем очистите проект. Он обновит все, и ошибка должна исчезнуть.

+0

К сожалению, это не сработало. Очистил проект, удалил приложение и ту же ошибку. – Constantin

+0

Эти андроиды: у вещей цвета могут быть проблемы с ними – Nebraska

+0

Я дам этот снимок. – Constantin