Моя проблема заключается в том, что загрузка массива строк, определенных в XML, работает в приложении, но приведет к ошибке в предварительном просмотре графического макета ADT.
Теперь из-за этой ошибки я не вижу графику в графическом макете, а с другой графикой работать сложно. Но представление загружается и отображает строки нормально, если я создаю и запускаю свое приложение.
Итак, я полагаю, что мой код правильный, но либо:
У меня есть собственное представление, в котором я получаю массив, определенный мной в файле array.xml.
public class ScoreTable extends View {
[...]
@Override
protected void onDraw(Canvas canvas) {
[...]
int score_vals[] = getResources().getIntArray(R.array.score_vals);
[...]
}
[...]
}
Мой массив определен в res/values/array.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="score_vals">
<item >10</item>
<item >20</item>
<item >50</item>
</array>
</resources>
Графический макет пуст и говорит:
Int array resource ID #0x7f050000
Exception details are logged in Window > Show View > Error Log
Но, конечно, у меня есть «общедоступный статический окончательный счет _vals = 0x7f050000;» в Р.яве!
Подробная информация об этой ошибке находится в стеке глубиной 50 -, но вернемся к этому:
android.content.res.Resources$NotFoundException: Int array resource ID #0x7f050000
at android.content.res.Resources.getIntArray(Resources.java:405)
at com.threecats.poker.ScoreTable.onDraw(ScoreTable.java:53)
at android.view.View.draw(View.java:6740)
[...]
Итак, должны ли getResources ().getXXXArray ()работать в контексте предварительного просмотра графического макета ADT?
Я хотел бы упомянуть, что я пытался использовать как «массив», так и «массив -целое число» в XML, и оба работают в приложении, но не в предварительном просмотре. Также я попытался сохранить контекст из конструктора представления в частном члене контекста... тоже не помогло.