【发布时间】:2016-05-29 22:29:47
【问题描述】:
我最近开始了解 Firebase。
将数据添加到 Firebase 成功,但我在检索数据时遇到了问题 来自 firebase 的数据。
我用于检索数据的 getter 方法总是返回 空。
我的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;
}
}
pojos.getListname() 和 pojos.getOwner() 始终为 null。
请提供我的问题的解决方案。
提前致谢!
【问题讨论】:
-
确保 Firebase 中的名称与 POJOS 类中的名称一致。
-
在你的 MainActivity 之后
POJOS pojos=new POJOS();你没有为 pogos 对象设置任何值,你试图在你之前获得一个值设置值。先试试POJOS pojos = dataSnapshot.getValue(POJOS.class);。
标签: java android firebase getter firebase-realtime-database