我正在开发一个Android应用程序,其中我使用firebase作为数据库,但是当在onDataChange方法中获取变量并将它们分配给全局变量时,我得到了空变量,但是当我在onDataChange方法中调用这些变量时,它们是不是空的.
public class positionateMarkerTask extends AsyncTask { public ArrayList<Location> arrayList= new ArrayList<>(); public voID connect() { //setting connexion parameter final Firebase ref = new Firebase("https://test.firebaseio.com/test"); query query = ref.orderByChild("longitude"); //get the data from the DB query.addListenerForSingleValueEvent(new ValueEventListener() { @OverrIDe public voID onDataChange(DataSnapshot dataSnapshot) { //checking if the user exist if(dataSnapshot.exists()){ for (DataSnapshot usersnapshot : dataSnapshot.getChildren()) { //get each user which has the target username Location location =usersnapshot.getValue(Location.class); arrayList.add(location); //if the password is true , the data will be storaged in the sharedPreferences file and a Home activity will be launched } } else{ System.out.println("not found"); } } @OverrIDe public voID onCancelled(FirebaseError firebaseError) { System.out.println("problem "); } }); } @OverrIDe protected Object doInBackground(Object[] params) { connect(); return null; } @OverrIDe protected voID onPostExecute(Object o) { super.onPostExecute(o); System.out.println("the firs long is"+arrayList.get(0).getLongitude()); }}
解决方法:
欢迎使用异步编程,这会扰乱你一直认为是真实的一切. 总结
以上是内存溢出为你收集整理的android – 无法从ondatachange方法中获取值全部内容,希望文章能够帮你解决android – 无法从ondatachange方法中获取值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)