Je fais une application pour télécharger des photos et les montrer dans une galerie.
Quand j'exécute mon application, il ne charge pas les photos de la base de données Firebase. Il me donne l'erreur: p>
J'ai essayé de nombreuses solutions mais que tous ont échoué. p> C'est l'activité: p> Aucun adaptateur attaché; Sauter la mise en page code> p> package com.example.android.shoftoh1;
import android.content.Context;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.android.shoftoh1.R;
import com.example.android.shoftoh1.Upload;
import com.squareup.picasso.Picasso;
import java.util.List;
// Create the basic adapter extending from RecyclerView.Adapter
// Note that we specify the custom ViewHolder which gives us access to our views
public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ImageViewHolder> {
private Context mContext;
private List<Upload> mUploads;
public ImageAdapter(Context context, List<Upload> uploads) {
mContext = context;
mUploads = uploads;
}
@NonNull
@Override
public ImageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(mContext).inflate(R.layout.image_item, parent, false);
return new ImageViewHolder(v);
}
@Override
public void onBindViewHolder(ImageViewHolder holder, int position) {
Upload uploadCurrent = mUploads.get(position);
holder.textViewName.setText(uploadCurrent.getName());
Picasso.get()
.load(uploadCurrent.getImageUrl())
.fit()
.centerCrop()
.into(holder.imageView);
}
@Override
public int getItemCount() {
return mUploads.size();
}
// Provide a direct reference to each of the views within a data item
// Used to cache the views within the item layout for fast access
static class ImageViewHolder extends RecyclerView.ViewHolder {
// Your holder should contain a member variable
// for any view that will be set as you render a row
TextView textViewName;
ImageView imageView;
// We also create a constructor that accepts the entire item row
// and does the view lookups to find each subview
ImageViewHolder(View itemView) {
// Stores the itemView in a public final member variable that can be used
// to access the context from any ViewHolder instance.
super(itemView);
textViewName = itemView.findViewById(R.id.text_view_name);
imageView = itemView.findViewById(R.id.image_view_upload);
}
}
}
3 Réponses :
Essayez de faire ce produit ImageViewolder publique
// Provide a direct reference to each of the views within a data item
// Used to cache the views within the item layout for fast access
public class ImageViewHolder extends RecyclerView.ViewHolder {
// Your holder should contain a member variable
// for any view that will be set as you render a row
public TextView textViewName;
public ImageView imageView;
// We also create a constructor that accepts the entire item row
// and does the view lookups to find each subview
public ImageViewHolder(View itemView) {
// Stores the itemView in a public final member variable that can be used
// to access the context from any ViewHolder instance.
super(itemView);
textViewName = itemView.findViewById(R.id.text_view_name);
imageView = itemView.findViewById(R.id.image_view_upload);
}
}
}
Je suggère que vous essayez de: p>
recycleur code> li>
- Mettez ensuite à jour la liste contenant le code> code> à partir de
Firebase code> (Ceci peut être la même liste) li>
- Enfin, mettez à jour l'adaptateur
code> qui a été fait. LI>
ol>
bonne chance,
Bravo! P>
Tout d'abord, essayez de joindre l'adaptateur avec une liste vide puis appelez notifydatasetchanged () code> sur la mise à jour de la liste comme:
Si vous placez un point d'arrêt sur la première ligne de code dans votre méthode code> ONDATACHANGE CODE> et exécutez-la dans le débogueur, a-t-il déjà atteint ce point d'arrêt?
Oui ça va ça
Merci de confirmer. Cela signifie que vous pouvez parcourir le code de l'endroit où. Votre
muploads code> est-il peuplé avec les bonnes données si vous le faites?