Spinner не заполняется из Firebase

Свойство PropertyChangedEventArgs принимает только один конструктор, для которого требуется имя свойства как строка. Таким образом, по сути, использование INotifyPropertyChanged не означает, что на каком-то уровне, будь то высокая или низкая в вашей архитектуре, вам придется работать со строкой и ручным переименованием.

0
задан Frank van Puffelen 2 March 2019 в 00:05
поделиться

1 ответ

В doc рекомендуется сборщик

//Please notice Im using databaseReference and Company
//More details further
FirebaseListOptions<Company> options = new FirebaseListOptions.Builder<Company>()
        .setQuery(databaseReference, Company.class)
        .setLifeCycleOwner(this);
        .build();
        //Frank van Puffelen coment is right, you have to start listening some how

Вы не можете

mref = databaseReference.child("name");

и ожидаете получить список названий компаний, это не эквивалентно SQL select column

Вам необходимо создать POJO, представляющий компанию

public class Company {

    private String name;
    //TODO other attributes
    //TODO getters and seters
    //TODO default constructor
}

И теперь вы можете инициализировать адаптер:

FirebaseListAdapter<Company> adapter = new FirebaseListAdapter<Company>(options) {...

Когда вы попытайтесь установить данные для строки, используя general findViewById не будет работать, потому что ваш адаптер является внутренней реализацией абстрактного класса, вы обращаетесь к родительскому методу Activity. Вы должны использовать вид .

protected void populateView(View v, Company model, int position) {
TextView tv = (TextView) view;
view.setText(model.getName());
}

Я не знаю, должно ли это работать с Spinner для ListView.

Для дальнейшего роста вы должны научиться отлаживать, в этом случае первым шагом будет добавление журнала в метод populateView

Log.d("COOL_TAG", model);
0
ответ дан cutiko 2 March 2019 в 00:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: