2013-03-26 2 views
0

В моем приложении у меня есть много элементов управления, которые должны менять цвет текста при изменении состояния. Android предоставляет способ сделать это - списки состояния цвета. Для каждого состояния списка цветов я должен создать отдельный файл XML, например:Могу ли я определить несколько ColorStateLists в одном файле XML?

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:color="#398ede" android:state_pressed="true"/> 
    <item android:color="#808080"/> 
</selector>

Есть ли способ, чтобы избежать создания отдельного файла для каждого состояния списка цветов и определять их все в одном файле?

ответ

0

Вы, должно быть, нашли ответ уже сейчас, но ради тех, кто пришел к этой ссылке снова, вот как мы это делаем.

Если у вас есть файл ресурсы определение нескольких цветов, как это:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<color name="xBlack">#FF000000</color> 
<color name="xYellow">#FFFFFF00</color> 
</resources> 

Вы должен поместить этот файл в соответствии с ценностями (и не в цветах) Для доступа к значениям вам нужно использовать:

dummy_button_id.setBackgroundColor(getResources().getColor(R.color.xBlack)); 
+0

Да, это работает, но только с «простыми» цветами, а не с государственными списками. Если вы попытаетесь определить несколько списков состояния цвета, например, это приведет к ошибке AAPT. Я попробовал это, прежде чем задавать этот вопрос :) – Grishka

+0

Вы нашли способ? – Manish

+0

К сожалению нет. – Grishka

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