Свойство PropertyChangedEventArgs принимает только один конструктор, для которого требуется имя свойства как строка. Таким образом, по сути, использование INotifyPropertyChanged не означает, что на каком-то уровне, будь то высокая или низкая в вашей архитектуре, вам придется работать со строкой и ручным переименованием.
В 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);