2017-07-04 2 views
1

Je veux juste laisser le message si la liste de Json est vide. ..so comment devrais-je le faire ... obtenir beaucoup de conflits à recyclerviewJe veux juste laisser le message si la liste de Json est vide ... alors comment dois-je le faire ... obtenir beaucoup de conflits à recyclerview

Une simple sous-classe {@link Fragment}.

public class TodayFragment extends Fragment implements ViewPager.OnPageChangeListener { 

    public static final String URL_DATA =Url.GET_TODAY_UPDATE; 
    private RecyclerView recyclerView; 
    private RecyclerView.Adapter adapter; 
    String currentDate="2017-06-29"; 
    private List<TodayList> listViews; 
    private TextView totalPaidFees; 



    public TodayFragment() { 
     // Required empty public constructor 
    } 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy/mm/dd"); 
     loadRecyclerViewData(); 
     return view; 
    } 

    private void loadRecyclerViewData() { 

     final ProgressDialog progressDialog = new ProgressDialog(getActivity()); 
     progressDialog.setMessage("Loading..."); 
     progressDialog.show(); 

     SingletoneRequst.q(getContext()).add(new StringRequest(Request.Method.GET, URL_DATA+currentDate , new Response.Listener<String>() { 


      @Override 
      public void onResponse(String response) { 
       progressDialog.dismiss(); 
       Log.i("@url_T","url--"+URL_DATA); 
       Log.i("@today", "Json--"+response.toString()); 
       Gson gson = new Gson(); 
       TodayFees list = (gson.fromJson(response, TodayFees.class)); 

       List<TodayList> lists = list.getTodayList(); 
       for (TodayList todayList : lists) { 
        Log.i("today", "" + todayList); 

       } 
       totalPaidFees.setText(list.getTotalFees().toString()); 
       adapter = new Adapter_TodayFees(lists, getContext()); 
       recyclerView.setAdapter(adapter); 


      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       progressDialog.dismiss(); 
       Toast.makeText(getActivity(), "Network problem!! Check your internet connection", Toast.LENGTH_LONG).show(); 
      } 
     })); 

    } 




    @Override 
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

    } 

    @Override 
    public void onPageSelected(int position) { 

    } 

    @Override 
    public void onPageScrollStateChanged(int state) { 

    } 
} 
+0

Si vous voulez afficher un message dans la mise en page où RecyclerView est présent renvoyer cette [réponse] (https://stackoverflow.com/questions/28217436/how-to -show-an-empty-view-with-a-recyclerview) – maRShmallow

Répondre

0

faire comme ça ...

List<TodayList> lists = list.getTodayList(); 
if(lists!=null && lists.size>0){ 
     for (TodayList todayList : lists) { 
      Log.i("today", "" + todayList); 

     } 
     totalPaidFees.setText(list.getTotalFees().toString()); 
     adapter = new Adapter_TodayFees(lists, getContext()); 
     recyclerView.setAdapter(adapter); 
} 
else{ 
    //Show the message here 
} 
0

suffit de vérifier si le TodayfeesList a des données. Si oui, réglez l'adaptateur:

if(list != null){ 
    if(list.size() > 0){ 
     totalPaidFees.setText(list.getTotalFees().toString()); 
     adapter = new Adapter_TodayFees(lists, getContext()); 
     recyclerView.setAdapter(adapter); 

    } 
    else{ 
     Toast.makeText(getActivity(), "Data couldn't be fetched properly!", Toast.LENGTH_LONG).show(); 
    } 
} 

Espérons que cela aide.