2015-11-10 3 views
-2

У меня возникли проблемы с получением массива цветов.
Я получаю исключение NullPointerException, пока я извлекаю данные из файла strings.xml.
Logcat сообщает NPE в этой строке:NPE на getStringArray

colorList.add(Color.parseColor(colore)); 

strings.xml

<array name="colors"> 
<item>#FFFFFF</item> 
    <item >#FFFFF0</item> 
    <item >#FFFFE0</item> 
    <item >#FFFF00</item> 
</array> 

адаптер

public class ColorPickerAdapter extends BaseAdapter { 
private Context context; 
private List<Integer> colorList = new ArrayList<Integer>(); 
public ColorPickerAdapter(Context context) { 
    this.context = context; 

String colors[] = context.getResources().getStringArray(R.array.colors); 
colorList = new ArrayList<Integer>(); 

    // add the color array to the list 
     for(String colore : colors){ 
       colorList.add(Color.parseColor(colore)); 
     } 
} 
+0

Вы не можете инициализировать объект на уровне декларации. Замените этот 'private List colorList = new ArrayList ();' с 'private List colorList;' –

+0

И ... почему вы не используете 'colors.xml' для хранения цветов? –

ответ

1
<string-array name="colors"> 
    <item>#FFFFFF</item> 
    <item>#FFFFF0</item> 
    <item>#FFFFE0</item> 
    <item>#FFFF00</item> 
    </string-array> 

использование string-array вместо массива.

Смежные вопросы