Я пытаюсь научиться использовать firebase, но при попытке загрузить данные в listView приложение возвращает ошибку:
java.lang.RuntimeException: Невозможно запустить действие ComponentInfo {моя деятельность} java.lang.NullPointerException: попытка вызвать виртуальный метод 'void com.firebase.ui.database.FirebaseListAdapter.startListening ()' для пустой ссылки на объект.
Есликто-то может увидеть проблему, это было бы очень полезно.
Аспект моей базы данных:
location
40434734
latitude: 40.434734
longitude: -3.70701
txt: "test"
Мой класс:
public class start extends AppCompatActivity{
ListView lv;
FirebaseListAdapter adapter;
@Override
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
lv = (ListView) findViewById(R.id.listView);
Query query = FirebaseDatabase.getInstance().getReference().child("location");
FirebaseListOptions<LocationData> options = new FirebaseListOptions.Builder<LocationData>()
.setLayout(R.layout.list_location)
.setQuery(query,LocationData.class)
.build();
adapter = new FirebaseListAdapter(options) {
@Override
protected void populateView(View v, Object model, int position) {
TextView stdID = v.findViewById(R.id.nombre);
LocationData ld = (LocationData) model;
stdID.setText(ld.getTxt().toString());
}
};
lv.setAdapter(adapter);
}
@Override
protected void onStart() {
super.onStart();
adapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
adapter.stopListening();
}
}
Мой класс LocationData для создания объекта:
public class LocationData {
double latitude;
double longitude;
String txt;
public LocationData(){
}
public LocationData(double latitude, double longitude, String txt) {
this.latitude = latitude;
this.longitude = longitude;
this.txt = txt;
}
public String getTxt() {
return txt;
}
public void setTxt(String txt) {
this.txt = txt;
}
public double getLatitude() {
return latitude;
}
public void setLatitude(double latitude) {
this.latitude = latitude;
}
public double getLongitude() {
return longitude;
}
public void setLongitude(double longitude) {
this.longitude = longitude;
}