Java firebase数据库到自定义列表视图问题
如果我做得对,有人能看到吗?从firebase数据库中,我使用此Java firebase数据库到自定义列表视图问题,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,如果我做得对,有人能看到吗?从firebase数据库中,我使用此 FirebaseDatabase database = FirebaseDatabase.getInstance(); database.getReference() .child("Users").child("Displayname") .addListenerForSingleValueEvent(new ValueEventL
FirebaseDatabase database = FirebaseDatabase.getInstance();
database.getReference()
.child("Users").child("Displayname")
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()){
Map<String, Object> map =(Map<String, Object>) snapshot.getValue();
for (Map.Entry<String, Object> entry : map.entrySet()){
Cred = (String) entry.getValue();
friend = snapshot.getKey();
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
List<String> list = new ArrayList<String>();
list.add(Cred+" "+friend);
String[] stringArray = list.toArray(new String[0]);
我的firebase数据库:
尝试使用这种方式进行排序
Collections.sort(stringArray, (c1, c2) -> {
String num1 = c1.split(" ")[0];
String num2 = c2.split(" ")[0];
return Double.compare(Double.parseDouble(num2), Double.parseDouble(num1));
});
System.out.println(stringArray);
更新1:将此块替换为上面的
Comparator comparator = new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
String num1 = o1.split(" ")[0];
String num2 = o2.split(" ")[0];
return Integer.parseInt(num2) - Integer.parseInt(num1);
}
};
Arrays.sort(stringArray, comparator);
System.out.println(Arrays.toString(stringArray));
比较器比较器=新比较器(){
@凌驾
公共整数比较(字符串o1、字符串o2){
字符串num1=o1.split(“”[0];
字符串num2=o2.split(“”[0];
返回Integer.parseInt(num2)-Integer.parseInt(num1);
}
};
排序(stringArray,comparator);
System.out.println(Arrays.toString(stringArray));
我做错了什么?@Niraj感谢您的回复,
字符串num1=c1.split(“”[0];字符串num2=c2.split(“”[0]代码>显示无法解析拆分(java.lang.String)如果要为c1
和c2
获取拆分,则需要替换此块进行排序。请检查更新的答案。
Collections.sort(stringArray, (c1, c2) -> {
String num1 = c1.split(" ")[0];
String num2 = c2.split(" ")[0];
return Double.compare(Double.parseDouble(num2), Double.parseDouble(num1));
});
System.out.println(stringArray);
Comparator comparator = new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
String num1 = o1.split(" ")[0];
String num2 = o2.split(" ")[0];
return Integer.parseInt(num2) - Integer.parseInt(num1);
}
};
Arrays.sort(stringArray, comparator);
System.out.println(Arrays.toString(stringArray));