java - 无法从方法返回相同的值,从它的子方法
问题描述
ArrayList<String> getthis=new ArrayList<String>();
getthis.add("username");
getthis.add("status");
*努力实现——
方法将采用 "username","status" 并从 FirebaseDatabase 获取它们的值作为新的类似数组,*
它这样做,它检索日志所说的值。这些是检查应用程序时的日志。
D/FirebaseHelper: Recived name=a@gmail.com
FinalArray have size 1 and Element is a@gmail.com
D/FirebaseHelper: Recived status=hi there buddy
FinalArray have size 2 and Element is hi there buddy
Ide 在 Logs 之前抛出 Log 之下
D/FirebaseHelper: At last FinalArray have size 0 and Element is []
Recived Array[]
但是最后,当 main 方法尝试返回 Main Array 时,它不能。
主要问题是——
Ide 显示没有错误。但是方法无法返回由子方法构造的新数组。即 OnValueEventListner。
这些是主要代码
package com.abhishekwork.forwork;
import android.util.Log;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import androidx.annotation.NonNull;
public class HardWork {
private static String tempString;
public static ArrayList<String> getArrayFromFirebase(DatabaseReference databaseReference, final ArrayList<String> arrayList) {
final int inputArraySize = arrayList.size();
final ArrayList<String> finalArrayList = new ArrayList<>(inputArraySize);
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (int i = 0; i < inputArraySize; i++) {
tempString = dataSnapshot.child(arrayList.get(i)).getValue().toString();
Log.d("FirebaseHelper","Recived"+arrayList.get(i) + "=" + tempString);
finalArrayList.add(i,Temp_String);
Log.d("FirebaseHelper","FinalArray has size" + finalArrayList.size() + " and Element is " + finalArrayList.get(i));
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
Log.d("FirebaseHelper", "At last FinalArray have size" + finalArrayList.size() + "and Element is " + finalArrayList.toString());
Log.d("FirebaseHelper", "Recieved Array" + finalArrayList);
return finalArrayList;
}
}
解决方案
推荐阅读
- aws-cli - 是否可以使用 AWS CLI 仅更新 Glue 作业的一部分?
- c# - 玩家不再向左移动
- pandas - 按索引使用来自另一个数据框的值更新数据框列
- r - 如何从嵌套列表中提取每个 ggplot2 图
- python - 根据另一个属性自动设置一个属性的值并缓存它们以供以后使用
- azure-devops - 在 Azure Devops Pipelines Builds 上的 CI 触发器中排除文件类型
- java - 如何从数组中计算唯一的“模式”?
- python - 将数组列表转换为列表?
- python - 检索选定的记录
- c++ - 有没有办法从两个图像创建一个垫子,同时保持图像的参考