Я снова пытаюсь использовать ресурсы, установленные в текущей теме, в моем приложении Android и сталкиваюсь с трудностями.
Следуя грубым рекомендациям, найденным здесь для повторного использования значения атрибута темы
Первоначально я пытался создать селектор, подобный этому
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="?android:attr/selectableItemBackground" />
<item android:drawable="@color/transparent" />
</selector>
, где нарисованное нажатое состояние объявляется так:
<item name="selectableItemBackground">@android:drawable/item_background</item>
в текущих темах ICS xml doc themes xml doc .Это прекрасно компилируется в eclispse (тогда как если я произношу attr неправильно, это выдаст ошибку или reffng @android: drawable / item_background напрямую сообщит мне, что сам drawable является приватным).
Когда я запускаю приложение, я получаю
FATAL EXCEPTION: main
E / AndroidRuntime (18815): android.view.InflateException: Binary XML file line #14: Error inflating class <unknown>
без какой-либо другой полезной информации, кроме XML-файла, который использует этот селектор для значения атрибута ImageViews android:background
.Я знаю, что есть ошибка, когда colorStateLists нельзя использовать в качестве фона , как упоминалось здесь , и, возможно, это также относится к спискам drawableState, ссылающимся на drawables из темы.Однако я знаю, что это работает, как описано в посте.
Я что-то здесь упускаю ??Я всегда сталкиваюсь с чем-то, чего не понимаю, когда пытаюсь делать подобные вещи, поэтому буду рад любым указателям.
Спасибо за любую помощь
РЕДАКТИРОВАТЬ
В качестве другого эксперимента я попытался установить псевдоним для ссылочной области рисования в теме, такой как
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="?android:attr/selectableItemBackground" ></bitmap>
, и напрямую использовать ее в качестве фона, но это тоже не работает.Глядя на псевдонимы, они служат только для ссылки на реальные изображения, поэтому имеет смысл
РЕДАКТИРОВАТЬ 2
еще один тест, который я обнаружил, используя его напрямую
android:background="?android:attr/selectableItemBackground"
действительно работает.Таким образом, кажется, что использование его внутри псевдонима или селектора может привести к несчастью.Как ни странно, я бы предположил, что и фон, и один и тот же аргумент
РЕДАКТИРОВАТЬ 3
Кажется, что атрибут attr, на который я указывал, на самом деле был селектором, который, я уверен,не помогли проблему!Думаю, я бы догадался, глядя на название этого