Używam klasy DataBinding do wiązania danych z modelu z elementami interfejsu użytkownika. Mogłem uzyskać wiążące działanie dla EditText za pomocą android:text="@{data.testData}"
. To jakoś nie działa na Spinner. Wszelkie pomysły i rozwiązania, aby uzyskać dane z klasy Pojo
i wyświetlić go na obrotówki (mam 45 błystki)Powiązanie danych w Androidzie z układem xml
Odpowiedz
Oto przykład, że kiedyś to zrobić:
pierwszy, xml układu (przykładem my_layout.xml
):
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="spinnerAdapter"
type="android.widget.ArrayAdapter" />
</data>
...
<android.support.v7.widget.AppCompatSpinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:adapter="@{spinnerAdapter}" />
....
</layout>
Następnie kod Java (MyLayoutBinding mBinding
):
adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_spinner_item, mData);
mBinding.setSpinnerAdapter(adapter);
Gdzie jest zdefiniowany atrybut app: adapter? – Hong
Nigdzie nie jest zdefiniowany, ponieważ powiązanie danych znajdzie metodę ustawiającą 'setAdapter()', gdy napotka 'app: adapter =" @ {spinnerAdapter} "' w ten sposób. – maohieng
Czy możesz podać kod całej klasy, w której działa adapter (MyBayoutBidning mBinding)? Dzięki. – CACuzcatlan
- 1. Arabski lustro problemu z układem w Androidzie
- 2. Skrót między układem graficznym a XML
- 3. Ninject zależności powiązanie z xml
- 4. Powiązanie danych z Javą
- 5. Zobacz preferencje z układem niestandardowym
- 6. Wyczyść powiązanie w Silverlight (usuń powiązanie danych z SetBinding)
- 7. WPF: powiązanie danych z kodem
- 8. Powiązanie z całą pozycją danych w XAML
- 9. Dwukierunkowe powiązanie danych w backbone.js
- 10. Powiązanie danych w dyrektywie AngularJs
- 11. Reagowanie i powiązanie danych
- 12. Okno dialogowe Androida z niestandardowym układem: zwracanie danych
- 13. Parsowanie arabskiego XML w Androidzie
- 14. Powiązanie danych Androida z niestandardowym adapterem
- 15. Powiązanie danych WPF z ResourceDictionary MVVM
- 16. Dlaczego powiązanie danych z DynamicResource nie działa?
- 17. Ember.js: powiązanie danych między kontrolerami
- 18. dostać widok rodziców z układem
- 19. Powiąż android niestandardowy widok z określonym układem xml (czy to jest możliwe?)
- 20. Android leniwy powiązanie danych możliwe?
- 21. Powiązanie danych WPF Zawartość etykiety
- 22. Dwukierunkowe powiązanie danych nie działa w dyrektywie
- 23. Powiązanie danych w dynamicznie wstawianym elemencie polimerowym
- 24. Tworzenie ścieżki i powiązanie danych
- 25. Zapisywanie danych z LogCat w Androidzie
- 26. Rozwiązywanie problemów "javax/xml/XMLConstants.class" w Androidzie
- 27. Ponownie wykorzystaj kod TextView w Androidzie XML
- 28. Kolejność atrybutów XML w Androidzie Studio
- 29. C# wyodrębnianie danych z XML
- 30. Pulpit jquery z układem siatki
Mając 45 błystki jest trochę dziwne. Czy rozważałeś inne obejścia lub projekty? –
Tak, to jest formularz ankiety i jest bindowany w jedną stronę za pomocą narzędzia Android Form Enhancer (ui do modelu). Muszę teraz pracować w inny sposób. –
Dziękuję za spojrzenie na to pytanie, z przyjemnością stwierdzam, że znalazłem rozwiązanie tego. Dla spinnera musimy użyć app: selection = "@ {data.testSpinnerData}" i obowiązkowo mieć metodę getter w twojej klasie Pojo, która zwróci TYLKO wartość całkowitą. na przykład. public int getTestSpinnerData() –