2016-08-09 5 views
0

У меня теперь есть счетчик, и я хочу загрузить данные на счетчик с функцией привязки данных. Я попытался найти способ объявить строковый массив в XML (https://developer.android.com/topic/libraries/data-binding/index.html#expression_language), но удовлетворительный результат не найден.Невозможно установить массив строк для счетчика с использованием привязки данных Android

<layout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:apps="http://schemas.android.com/apk/res-auto"> 

<data> 
    <import type="android.util.SparseArray"/> 
    <variable 
     name="statuslist" 
     type="SparseArray<String>"/> 
</data> 
... 
<android.support.v7.widget.AppCompatSpinner 
     android:id="@+id/spn_status" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignStart="@+id/spinner1" 
     android:layout_below="@+id/btn2" 
     android:entries="@{statuslist}" 
     apps:adapter="@{statusAdapter}"/> 
</layout> 

При сборке отображается следующая ошибка.

Ошибка: выполнение выполнено для задачи ': app: dataBindingProcessLayoutsDebug'.

org.xml.sax.SAXParseException; systemId: file:/C:/Users/../app/build/intermediates/res/merged/debug/layout/testdialog.xml; lineNumber: 24; columnNumber: 30; The value of attribute "type" associated with an element type "null" must not contain the '<' character.

Однако, есть что-то смущенное.

  1. Когда я попытался использовать SparseArray, как показано на веб-сайте. Я нашел «Не могу решить sysmbol» в редакторе XML Studio Android.
  2. Я не знаю, является ли это правильным способом установки значения массива для счетчика, поскольку нет официальных инструкций для данных счетчика, связанных с веб-сайтом.
+0

Включили ли вы привязку данных в build.gradle? – anhtuannd

+0

Да, я включаю привязку данных в build.gradle. Вот информация о моей Android Studio (Версия: 2.1.2, JavaVersion: 1.7) –

ответ

0

Вы импортируете SparseArray?

попробовать это:

<data><import type="android.util.SparseArray"/></data> 
+0

Я забыл добавить это утверждение в вопрос. Я пробовал это, но он не работает –

+2

SparseArray изменить на SparseArray < String>, попробуйте еще раз – FrankOy

+0

Пробовал этот путь, и он все еще не работает. Ошибка «Не удается разрешить символ» все еще отображается –

0

Это очень простой способ установки прядильщик с строкового массива из array.xml вашего ресурса

<Spinner 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:entries="@array/spinner_array_items"/> 

spinner_array_items должен содержать список элементов, которые можно найти в раскрывающемся списке счетчиков.