android - 如何在适配器类中显示所有图像 URL 以及用户名、标题、uid、时间戳
问题描述
我正在尝试显示所有图像 URL 以及用户名、时间戳和标题,但只显示一张图像。我正在使用 recyclerview 适配器。我想在适配器中显示所有带有长标题、时间戳和用户名的图像 URL,就像一篇文章一样
这就是我使用博客类在firebase数据库中存储的方式
ArrayList<Uri> arrayListImageDownloadUri = new ArrayList<>();
final Uri downloaduri = taskSnapshot.getDownloadUrl();
Log.v("DOWNLOAD URI", String.valueOf(downloaduri));
blogimages.add(downloaduri.toString());
Log.v("BLOGGIMAGES", String.valueOf(blogimages));
// final String path= uri.getLastPathSegment();
final DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("posts/");
final String newPostKey = ref.push().getKey();
final String posttitle = desc.getText().toString();
final String CurrentUser = firebaseAuth.getCurrentUser().getUid();
userid = FirebaseDatabase.getInstance().getReference().child("Blog").child(CurrentUser).push();
ArrayList<String> arrayList = new ArrayList<>();
for(int i=0; i<blogimages.size();i++) {
arrayList.add( blogimages.get(i).toString());
Log.v("IMAGESADDING PHSE3", String.valueOf(arrayList));
}
Log.v("COCOCOCOCO", String.valueOf(arrayList));
n.put(String.valueOf("img"), blogimages.get(i).toString());*/
Blog blog = new Blog();
long millis = System.currentTimeMillis();
int timestamp = ((int) (millis/1000))* -1;
blog.setTitle(posttitle);
blog.setUrl(arrayList);
blog.setUid(firebaseAuth.getCurrentUser().getUid());
mdatabaseReference.child(CurrentUser).setValue(blog)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Intent mm = new Intent(PhotoUploadActivity.this, MainActivity.class);
startActivity(mm);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(PhotoUploadActivity.this, "Failed to post the blog.. Try again later", Toast.LENGTH_LONG).show();
}
});
解决方案
当您获取博客数据时,您可以在成功侦听器中使用它:
rootRef.child("Blog").child("blogId").child(url).addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
urlList.add(dataSnapshot.getValue()); //you will receive single element
//every time in this listener you can store it in list then you can give it to your adapter out side this listener
}
...
注意:您必须在 Child Changed,Removed 上实现方法...
推荐阅读
- javascript - React Native Firebase 获取数据
- php - 如何从卷曲响应中提取行的特定部分
- python - Django 将文件数据提供给模型
- python - python中非常慢的http post请求
- java - 处理无效用户输入时停止无限循环 - Java
- winapi - 更快的替代品 WINAPI ReadProcessMemory
- ms-word - 如何搜索单词的一部分并在之后替换整个单词?
- r - “检查 S3 通用/方法一致性......警告”的解释
- javascript - 使用 Luxon 计算平均时间
- sas - 如果创建的数据集有零行,如何跳过代码