此循环一次获取1个键。我希望将String[]
中的所有密钥存储在循环的最后,然后在ArrayAdapter
中使用它以进行自动完整文本查看。
fdatabaseuser.addValueEventListener(new ValueEventListener({
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String item="";
for (DataSnapshot list: dataSnapshot.getChildren())
{
Object obj= list.getKey();
item=obj.toString();
}
Toast.makeText(GiveActivity.this,item,Toast.LENGTH_LONG).show();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
答案 0 :(得分:0)
实际上你已经有了钥匙。您可以创建ArrayList
并添加项目。
ArrayList<String> keys = new ArrayList<>();
fdatabaseuser.addValueEventListener(new ValueEventListener({
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String item="";
for (DataSnapshot list: dataSnapshot.getChildren())
{
Object obj= list.getKey();
item=obj.toString();
keys.add(item);
}
Toast.makeText(GiveActivity.this,item,Toast.LENGTH_LONG).show();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
答案 1 :(得分:0)
let options: FileUploadOptions = {
fileKey: 'file',
fileName: 'Order_'+this.order_data.order_id+"_"+this.order_data.order_type+".png",
httpMethod : 'POST',
mimeType: 'image/png',
chunkedMode: false,
headers : {"Accept": "image/png"}
};
List<String> item;
方法
OnCreate
然后更改此代码:
item=new ArrayList<>();
答案 2 :(得分:0)
要实现此目的,请使用以下代码:
fdatabaseuser.addValueEventListener(new ValueEventListener({
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<String> list = new ArrayList<>();;
for (DataSnapshot ds : dataSnapshot.getChildren()) {
String key = ds.getKey();
list.add(key);
}
Log.d("TAG", list);
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
请记住,必须在list
方法中声明和更新onDataChange()
,否则它将为null,因为onDataChange()
的异步行为甚至在您添加这些异步行为之前就会被调用列表的键。