Недавно я начал изучать Firebase.getter всегда возвращается в android
Добавление данных в базу огня успешно, но я сталкиваюсь с проблемами при получении данных от базы огня.
Методы получения, которые я использую для извлечения данных, всегда возвращают null.
Мой MainActivity.java выглядит следующим образом:
public class MainActivityFragment extends Fragment {
TextView time_stamp;
public MainActivityFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View rootView=inflater.inflate(R.layout.fragment_main, container,
false);
final TextView owner=(TextView)rootView.findViewById(R.id.owner);
time_stamp=(TextView)rootView.findViewById(R.id.time_stamp_textView);
final TextView changed_data_view=(TextView)rootView.findViewById(R.id.changedView);
Firebase mRef=new Firebase(Constants.FirebaseUrl).child("activeList");
mRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
POJOS pojos=new POJOS();
changed_data_view.setText(pojos.getListname());
Log.i("LIST",pojos.getListname());
Log.i("OWNER",pojos.getOwner());
owner.setText(pojos.getOwner());
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
return rootView;
}
}
Мой класс POJO выглядит следующим образом:
public class POJOS {
public String listname;
public String owner;
public POJOS() {
}
public POJOS(String listname, String owner) {
this.listname = listname;
this.owner = owner;
}
public String getListname(){
return listname;
}
public String getOwner() {
return owner;
}
}
Мой класс Добавить пункт выглядит следующим образом:
public class Dialog extends DialogFragment {
private final String title="ADD AN ITEM";
private EditText editText;
Button addButton;
public Dialog(){
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
getDialog().setTitle(title);
View rootView=inflater.inflate(R.layout.dialog_box,null);
editText=(EditText)rootView.findViewById(R.id.editText);
addButton=(Button) rootView.findViewById(R.id.addButton);
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String userEnteredName=editText.getText().toString();
Firebase firebase=new Firebase(Constants.FirebaseUrl);
POJOS pojos =new POJOS(userEnteredName,"ANONYMOUS USER");
firebase.child("activeList").setValue(pojos);
dismiss();
}
});
return rootView;
}
}
The pojos.g etListname() и pojos.getOwner() всегда равны нулю.
Пожалуйста, предоставьте решение моей проблемы.
Заранее благодарен!
Убедитесь, что имена в Firebase Mach - имена в классе POJOS. –
В вашей ** MainActivity ** после 'POJOS pojos = new POJOS();' вы не задавали никаких значений для объекта ** pogos **, вы пытаетесь получить значение перед установкой значения. Попробуйте сначала 'POJOS pojos = dataSnapshot.getValue (POJOS.class);'. –