我目前正在开发一个Android应用程序,其中我使用firebase作为数据库,但是当我在connection="DRIVER={SQL Server Native Client 11.0};SERVER=%s;DATABASE=%s;UID=%s;PWD=%s"%((db["SQL_SERVER"],db["db"],db["user"],db["pwd"]))
conn=pypyodbc.connect(connection)
cur=conn.cursor()
print cur.getTypeInfo(93)
方法中获取变量并将它们分配给全局变量时,我得到了空变量但是当我在onDataChange
方法中调用这些变量时,它们不是空的。
onDataChange
答案 0 :(得分:0)
即使我遇到同样的问题。只需将onDataChange中的arraylist值传递给另一个方法即可。
myFirebaseRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.d("FIREBASE",String.valueOf(dataSnapshot.getChildrenCount()));
if (dataSnapshot.exists()){
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
Log.d("FIREBASE ","FOR LOOP");
//Arraylist codes
iosTitleVal.add(snapshot.getKey().toString());
iosDescVal.add(snapshot.getValue().toString());
Log.d("FIREBASE","ArrayList KEY IS "+iosTitleVal);
//Passing arraylist values to another method
storageContainer(iosTermTitle,iosTermDesc);
}
}else {
Log.d("FIREBASE","NO DATAS");
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
这是我的 storageContainer 方法。在这个方法中,我将arrraylist值传递给RecyclerView Adapter的构造函数。
public void storageContainer(ArrayList<String> arrayListTitle, ArrayList<String> arrayListDesc){
iosTitleStorage = arrayListTitle;
iosDescStorage = arrayListDesc;
//No null exception here...
Log.d("FIREBASE"," My Data KEY "+iosTitleStorage +" and VAL "+iosDescStorage);
}
我希望它会起作用