2017-10-19 27 views
-3

J'ai une vue recyclée et je veux afficher le message «chargement ...» ou cercle tournant pendant que le recycleur est rempli avec les données de json. Ce est le code pour mon recycleur:Comment afficher le message de chargement dans recyclerview

arrayList = new ArrayList<>();  
    adapter = new ListAdapterGrupat2(this, arrayList, Comanda.class); 
    list.setAdapter(adapter); 
    final Retrofit retrofit = new Retrofit.Builder() 
      .baseUrl("http://mysite/") 
      .addConverterFactory(GsonConverterFactory.create()) 
      .build(); 
    service = retrofit.create(API.class); 

    if (myuser.equals("1")) { 
     service.getComenzileMele(user).enqueue(listener); 

    } else { 
     service.getComenziGrupat().enqueue(listener); 
    } 
} 
Callback<List<CustomObject>> listener = new Callback<List<CustomObject>>() { 

    @Override 
    public void onResponse(Call<List<CustomObject>> call, Response<List<CustomObject>> response) { 
     arrayList.clear(); 
     arrayList.addAll(response.body()); 
     adapter.notifyDataSetChanged(); 
    } 

    @Override 
    public void onFailure(Call<List<CustomObject>> call, Throwable t) { 
     Toast.makeText(ComenziGrupatActivity.this, "ERROR", Toast.LENGTH_SHORT).show();   
    } 
}; 

Voici l'adaptateur:

public class ListAdapterGrupat2 extends RecyclerView.Adapter<ListAdapterGrupat2.ViewHolder> { 

public ListAdapterGrupat2(Context context, ArrayList<CustomObject> arrayList, Class<?> cls) {   
} 

@Override 
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_programarigrupat, parent, false); 
    return new ViewHolder(v); 
} 

@Override 
public void onBindViewHolder(ViewHolder holder, int position) { 
    CustomObject obj = arrayList.get(position); 
    holder.item2.setText(obj.getItem2()); 

} 
+0

Nous avons besoin de votre code adaptateur pour le faire. –

+0

@ deathangel908 où devrais-je le rendre visible? – cvmircea

Répondre

0

Ajouter ProgressBar à votre classe et la mise en page (près de votre recicleView). Si vous souhaitez que le texte: ajoutez LinearLayout et y placer ProgressBar et TextView (visibilité de déclenchement sur LinearLayout):

ProgressBar bar; 

Afficher progressBar lorsque vous faites une demande et se cacher recicleView:

bar.setVisibility(VISIBLE); 
recicleView.setVisibility(GONE);  
service.getComenzileMele(user).enqueue(listener); 

Cacher progressBar quand demande est terminée et restaurer recicleView:

Callback<List<CustomObject>> listener = new Callback<List<CustomObject>>() { 

    @Override 
    public void onResponse(Call<List<CustomObject>> call, Response<List<CustomObject>> response) { 
     bar.setVisibility(GONE); 
     recicleView.setVisibility(VISIBLE); 
    } 

    @Override 
    public void onFailure(Call<List<CustomObject>> call, Throwable t) { 
     bar.setVisibility(GONE); 
     recicleView.setVisibility(VISIBLE);   
    } 
}; 
+0

cela fonctionne. Merci beaucoup. – cvmircea