Я пытаюсь загрузить изображение с помощью репозитория Glide, а затем в конечном итоге добавить это изображение в сетку. В настоящее время я пытаюсь сделать это, создав пустое изображение, загрузив изображение, добавив изображение в изображение, а затем добавив изображение в мой адаптер массива. Макет, который я использую с адаптером массива, содержит одно изображение. Вот мой код, макет и ошибка, которую я получаю, когда пытаюсь загрузить изображения.
final Query chatRoomMsgs = db.collection("chatrooms").document(chatRoomID).collection("Messages").whereEqualTo("sentby", UID);
chatRoomMsgs.get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
//ArrayList<ImageView> sentPicsURLS = new ArrayList<>();
for(QueryDocumentSnapshot documentSnapshot: queryDocumentSnapshots){
for(int i = 0; i < queryDocumentSnapshots.size(); i++) {
//sentPicsURLS.add(documentSnapshot.getString("image"));
ImageView tempimage = new ImageView(getApplicationContext());
Glide.with(Chatroom.this).load("gs://testapp-72419.appspot.com" + documentSnapshot.getString("image")).into(tempimage);
arrayAdapter.add(tempimage);
arrayAdapter.notifyDataSetChanged();
}
//Do what you need with your list
}
}
});
Мой адаптер массива:
final ArrayAdapter arrayAdapter = new ArrayAdapter(Chatroom.this, R.layout.chatroom_sent_images,R.id.sent_iv);
sentPics.setAdapter(arrayAdapter);
файл макета chatroom_sent_images
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#B84CD5">
<ImageView
android:id="@+id/sent_iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="21dp"
android:layout_marginLeft="21dp"
android:layout_marginTop="24dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@android:mipmap/sym_def_app_icon" />
</androidx.constraintlayout.widget.ConstraintLayout>
И затем странная ошибка, которую я получаю, когда приложение пытается загрузить изображения:
java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView
Caused by: java.lang.ClassCastException: androidx.appcompat.widget.AppCompatImageView cannot be cast to android.widget.TextView
Я не уверен, что где-нибудь упоминается хоть один testView
? Любые идеи? Спасибо!
gs://testapp-72419.appspot.com
- неправильный путь. Вы должны использовать что-то вроде firebasestorage.googleapis.com ... Обратите внимание, что он также должен содержать токен на конец. - person Alex Mamo   schedule 25.03.2020getDownLoadURL()
для каждого изображения и передавать ЭТО в Glide ... таким образом, они автоматически встраивают точную ссылку с токеном - person Ethan   schedule 25.03.2020