package com.example.retrofitrequests;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class RetrofitInstance {
private static Retrofit retrofit=null;
private static final String BASE_URL = "http://monURLdeBase";
public static Retrofit getRetrofitInstance() {
if (retrofit == null) {
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}
L'adapter du recyclerView:
package com.example.retrofitrequests;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.squareup.picasso.Picasso;
import java.util.List;
public class ArticlesAdapter extends RecyclerView.Adapter<ArticlesAdapter.ViewHolder>{
private List<Article> listeArticles;
private Context context;
public ArticlesAdapter(List listeArticles, Context context){
this.listeArticles = listeArticles;
this.context = context;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.article_item,parent,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
Article article = listeArticles.get(position);
String uri = "http://monURLdeBase/images/produits/" + article.getImage() + ".png";
Picasso.get().load(uri).resize(500,500).into(holder.img);
holder.nom.setText(article.getNom());
}
@Override
public int getItemCount() {
return listeArticles.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private ImageView img;
private TextView nom;
public ViewHolder(View itemView) {
super(itemView);
img = (ImageView) itemView.findViewById(R.id.articleItemPic);
nom = (TextView) itemView.findViewById(R.id.articleItemName);
}
}
}
J'ai l'impression que l'appli n'arrive pas à se connecter au fichier php sur le serveur car le print("getArticles%") que j'ai mis en tout début de fichier php ne s'affiche pas mais j'ai beau tourner le problème dans tous les sens en comparant avec des tutos et des réponses apportées ci et là mais je ne vois pas où est le problème. L'erreur dans le logcat est :
10-24 13:31:22.408 6231-6231/com.example.retrofitrequests E/RecyclerView: No adapter attached; skipping layout 10-24 13:31:22.423 6231-6231/com.example.retrofitrequests D/ERREUR:: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $ 10-24 13:31:22.424 6231-6231/com.example.retrofitrequests E/RecyclerView: No adapter attached; skipping layout
Merci beaucoup pour votre aide
- Edité par Wookie74 24 octobre 2020 à 16:00:16
Display data dans un recyclerView avec retrofit
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.