2017-07-17 48 views
0

我有包含RecyclerView的应用程序。该应用程序首次启动时会发送服务器请求以获取更多数据;当RecyclerView滚动结束时,会有一个进度条再次发送服务器请求以获取更多数据。但问题是,当滚动来结束它发出了一个服务器请求,但数据不会在RecyclerView填充。更多的数据不是在android的recyclerview中显示?

MainActivity

private List<Contact> contacts; 
Contact contact; 
private ContactAdapter contactAdapter; 
private Random random; 
private RecyclerView recyclerView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    contacts = new ArrayList<>(); 
    random = new Random(); 

    sendRequesttoServerForDeals(); 

    //find view by id and attaching adapter for the RecyclerView 
    recyclerView = (RecyclerView) findViewById(R.id.recycler_view); 

    recyclerView.setLayoutManager(new LinearLayoutManager(this)); 
    contactAdapter = new ContactAdapter(recyclerView, contacts, getApplicationContext()); 

    //set load more listener for the RecyclerView adapter 
    contactAdapter.setOnLoadMoreListener(new OnLoadMoreListener() { 
     @Override 
     public void onLoadMore() { 
       contacts.add(null); 
       contactAdapter.notifyItemInserted(contacts.size() - 1); 
       new Handler().postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         contacts.remove(contacts.size() - 1); 
         contactAdapter.notifyItemRemoved(contacts.size()); 

         sendRequesttoServerForMoreDeals(); 

        } 
       }, 5000); 

     } 
    }); 
} 
/** 
* Method is called to send server request for manual deals. 
*/ 
public void sendRequesttoServerForDeals() { 

    JSONObject jsonObject = new JSONObject(); 
    String dealListUrl = "URL/get?category=Amaze"; 
    JsonObjectRequest jsonRequest = new JsonObjectRequest(Request.Method.POST, dealListUrl.trim(), jsonObject, new Response.Listener<JSONObject>() { 
     @Override 
     public void onResponse(JSONObject response) { 
       Log.e("MainActivity", "Server success response::" + response); 
      String resultCode = "resultcode"; 
      try { 
       int nResultCodeFromServer = Integer.parseInt(response.getString(resultCode.trim())); 
       if (nResultCodeFromServer == ConstantInt.TRANSACTION_SUCCESS) { 
        JSONArray getJsonArray = response.optJSONArray(CResponseKey.DEAL_ARRAY.trim()); 
        contacts.clear(); 

        for (int i = 0; i < getJsonArray.length(); i++) { 
         try { 
          JSONObject getJsonObj = getJsonArray.getJSONObject(i); 
          contact = new Contact(); 
          contact.setEmail(getJsonObj.getString(CResponseKey.DEAL_NAME.trim())); 
          contact.setPhone(getJsonObj.getString(CResponseKey.DEAL_DETAIL.trim())); 
          contacts.add(contact); 
         } catch (Exception e) { 
          e.printStackTrace(); 
         } 

        } 
        contactAdapter.notifyDataSetChanged(); 
        contactAdapter.setLoaded(); 
        int arrayCount = getJsonArray.length(); 
        Log.e("Mainactivity", "ArrayCount::" + arrayCount); 
        recyclerView.setAdapter(contactAdapter); 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 

     } 
    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
       Log.e("MainActivity", "Server error response::" + error); 
     } 
    }); 
    RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext()); 
    jsonRequest.setRetryPolicy(new DefaultRetryPolicy(ConstantInt.INITIAL_TIMEOUT_MS, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
    requestQueue.add(jsonRequest); 
} 
/** 
* Method is called to send server request for manual deals. 
*/ 
public void sendRequesttoServerForMoreDeals() { 

    JSONObject jsonObject = new JSONObject(); 
    String dealListUrl = "URL/get?category=Amaze"; 
    JsonObjectRequest jsonRequest = new JsonObjectRequest(Request.Method.POST, dealListUrl.trim(), jsonObject, new Response.Listener<JSONObject>() { 
     @Override 
     public void onResponse(JSONObject response) { 
      Log.e("MainActivity", "Server success response::" + response); 
      String resultCode = "resultcode"; 
      try { 
       int nResultCodeFromServer = Integer.parseInt(response.getString(resultCode.trim())); 
       if (nResultCodeFromServer == ConstantInt.TRANSACTION_SUCCESS) { 
        JSONArray getJsonArray = response.optJSONArray(CResponseKey.DEAL_ARRAY.trim()); 
        contacts.clear(); 

        for (int i = 0; i < getJsonArray.length(); i++) { 
         try { 
          JSONObject getJsonObj = getJsonArray.getJSONObject(i); 
          contact = new Contact(); 
          contact.setEmail(getJsonObj.getString(CResponseKey.DEAL_NAME.trim())); 
          contact.setPhone(getJsonObj.getString(CResponseKey.DEAL_DETAIL.trim())); 
          contacts.add(contact); 
         } catch (Exception e) { 
          e.printStackTrace(); 
         } 

        } 
        int arrayCount = getJsonArray.length(); 
        Log.e("Mainactivity", "ArrayCount::" + arrayCount); 
        recyclerView.setAdapter(contactAdapter); 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      Log.e("MainActivity", "Server error response::" + error); 
     } 
    }); 
    RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext()); 
    jsonRequest.setRetryPolicy(new DefaultRetryPolicy(ConstantInt.INITIAL_TIMEOUT_MS, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
    requestQueue.add(jsonRequest); 
} 

} 

回答

0

一旦数据被应用到recyclerview,然后不调用clear(contacts.clear())的数据集,如果你不想删除现有的数据。

你为什么要在Web服务响应重新设置适配器

recyclerView.setAdapter(contactAdapter); 

删除此,一旦适配器一套,你UST需要调用notifydatasetchanged()

一旦你的现有数据集(联系人)与更新新的数据从服务器,或者在添加每个联系人后调用contactAdapter.notifyItemInserted(contacts.size() -1)

+0

我打电话sendRequesttoServerForMoreDeals() – Niraj

+0

无需重新设置适配器,数据一旦被设置,只需调用notifydatasetchanged – warlock

0

在您的sendRequesttoServerForMoreDeals()中进行以下修改。

  • 拆下contacts.clear();
  • 删除recyclerView.setAdapter(contactAdapter);
  • 添加contactAdapter.notifyDataSetChanged();添加所有更多交易后。
0

call recyclerView.setAdapter(contactAdapter); onCreate

然后只需调用contactAdapter.notifyDataSetChanged();一旦数据发生变化。

0

下面的工作示例。请检查一次,并快速解决这个问题

变化的代码

contactAdapter.notifyDataSetChanged(); 
        contactAdapter.setLoaded(); 
        int arrayCount = getJsonArray.length(); 
        Log.e("Mainactivity", "ArrayCount::" + arrayCount); 
        recyclerView.setAdapter(contactAdapter); 

以下行

contactAdapter.notifyDataSetChanged(); 
        contactAdapter.setLoaded(); 
        int arrayCount = getJsonArray.length(); 
        Log.e("Mainactivity", "ArrayCount::" + arrayCount); 

我不知道这是确切的答案,但尝试一次。但下面的代码正在工作。 :)

MembersList_Activity:

package com.veda.Activites; 

import android.os.Bundle; 
import android.support.annotation.NonNull; 
import android.support.design.widget.BottomNavigationView; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.DefaultItemAnimator; 
import android.support.v7.widget.LinearLayoutManager; 
import android.support.v7.widget.RecyclerView; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.ProgressBar; 
import android.widget.TextView; 
import android.widget.Toast; 

import com.android.volley.Request; 
import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.VolleyError; 
import com.android.volley.toolbox.JsonObjectRequest; 
import com.android.volley.toolbox.Volley; 
import com.veda.pravra.Adapters.MembersList_Adapter; 
import com.veda.pravra.Global.MyUtils; 
import com.veda.pravra.Interface.OnLoadMoreListener; 
import com.veda.pravra.Models.AllMember_Model; 
import com.veda.pravra.R; 

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import java.util.ArrayList; 
import java.util.List; 

import butterknife.BindView; 
import butterknife.ButterKnife; 

public class MembersList_Activity extends AppCompatActivity { 

    MembersList_Adapter contactAdapter; 
    @BindView(R.id.my_recycler_view) 
    RecyclerView recyclerView; 
    List<AllMember_Model> membersList; 
    int status; 
    String Message, subUrl; 
    @BindView(R.id.progressBar) 
    ProgressBar progressBar; 
    RecyclerView.LayoutManager layoutManager; 
    @BindView(R.id.tv_noData_memberActivity) 
    TextView noData; 

    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener 
      = new BottomNavigationView.OnNavigationItemSelectedListener() { 

     @Override 
     public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
      switch (item.getItemId()) { 
       case R.id.navigation_allMembers: 
        membersList = new ArrayList<>(); 
        contactAdapter = new MembersList_Adapter(recyclerView, membersList, MembersList_Activity.this); 
        subUrl = "hostelID=" + MyUtils.getValueFromSharedPreferences(MembersList_Activity.this, "hstl_ID", ""); 
        if (MyUtils.isInternetAvailable(getApplicationContext())) { 
         getAllMembersList(subUrl); 
        } else { 
         MyUtils.showAlertDialog(getApplicationContext(), getString(R.string.alerts), getString(R.string.noInternetMessage)); 
        } 

        //set load more listener for the RecyclerView adapter 
        contactAdapter.setOnLoadMoreListener(new OnLoadMoreListener() { 
         @Override 
         public void onLoadMore() { 
          subUrl = subUrl + "&start=" + membersList.size(); 
          if (MyUtils.isInternetAvailable(getApplicationContext())) { 
           loadMoreData(subUrl); 
          } else { 
           MyUtils.showAlertDialog(getApplicationContext(), getString(R.string.alerts), getString(R.string.noInternetMessage)); 
          } 

         } 
        }); 
        MyUtils.pendingMembersList = false; 
        return true; 
       case R.id.navigation_pendingMembers: 
        membersList = new ArrayList<>(); 
        contactAdapter = new MembersList_Adapter(recyclerView, membersList, MembersList_Activity.this); 

        subUrl = "hostelID=" + MyUtils.getValueFromSharedPreferences(MembersList_Activity.this, "hstl_ID", "") 
          + "&isPending=1"; 
        if (MyUtils.isInternetAvailable(getApplicationContext())) { 
         getAllMembersList(subUrl); 
        } else { 
         MyUtils.showAlertDialog(getApplicationContext(), getString(R.string.alerts), getString(R.string.noInternetMessage)); 
        } 
        //set load more listener for the RecyclerView adapter 
        contactAdapter.setOnLoadMoreListener(new OnLoadMoreListener() { 
         @Override 
         public void onLoadMore() { 
          subUrl = subUrl + "&start=" + membersList.size(); 
          if (MyUtils.isInternetAvailable(getApplicationContext())) { 
           loadMoreData(subUrl); 
          } else { 
           MyUtils.showAlertDialog(getApplicationContext(), getString(R.string.alerts), getString(R.string.noInternetMessage)); 
          } 
         } 
        }); 
        MyUtils.pendingMembersList = true; 
        return true; 
       case R.id.navigation_vacatedMembers: 
        membersList = new ArrayList<>(); 
        contactAdapter = new MembersList_Adapter(recyclerView, membersList, MembersList_Activity.this); 

        subUrl = "hostelID=" + MyUtils.getValueFromSharedPreferences(MembersList_Activity.this, "hstl_ID", "") 
          + "&isVacated=1"; 
        if (MyUtils.isInternetAvailable(getApplicationContext())) { 
         getAllMembersList(subUrl); 
        } else { 
         MyUtils.showAlertDialog(getApplicationContext(), getString(R.string.alerts), getString(R.string.noInternetMessage)); 
        } 

        //set load more listener for the RecyclerView adapter 
        contactAdapter.setOnLoadMoreListener(new OnLoadMoreListener() { 
         @Override 
         public void onLoadMore() { 
          subUrl = subUrl + "&start=" + membersList.size(); 

          if (MyUtils.isInternetAvailable(getApplicationContext())) { 
           loadMoreData(subUrl); 
          } else { 
           MyUtils.showAlertDialog(getApplicationContext(), getString(R.string.alerts), getString(R.string.noInternetMessage)); 
          } 
         } 
        }); 
        MyUtils.pendingMembersList = false; 
        return true; 
      } 
      return false; 
     } 

    }; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_members); 
     ButterKnife.bind(this); 
     recyclerView.setHasFixedSize(true); 
     layoutManager = new LinearLayoutManager(this); 
     recyclerView.setLayoutManager(layoutManager); 
     recyclerView.setItemAnimator(new DefaultItemAnimator()); 
     membersList = new ArrayList<>(); 

     recyclerView.setLayoutManager(new LinearLayoutManager(MembersList_Activity.this)); 
     contactAdapter = new MembersList_Adapter(recyclerView, membersList, MembersList_Activity.this); 

     BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation); 
     navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener); 

     //set load more listener for the RecyclerView adapter 
     contactAdapter.setOnLoadMoreListener(new OnLoadMoreListener() { 
      @Override 
      public void onLoadMore() { 
       subUrl = subUrl + "&start=" + membersList.size(); 
       loadMoreData(subUrl); 
      } 
     }); 

    } 

    private void loadMoreData(String subUrl) { 

     RequestQueue queue = Volley.newRequestQueue(this); 
     JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET, 
       MyUtils.BASE_URL + "Hostel/hostalUsers?" + subUrl, null, 
       new Response.Listener<JSONObject>() { 
        @Override 
        public void onResponse(JSONObject response) { 
         try { 
          status = response.getInt("status"); 
          Message = response.getString("message"); 
          if (status == 1) { 
           recyclerView.setVisibility(View.VISIBLE); 
           noData.setVisibility(View.GONE); 

           JSONArray membersArray = response.getJSONArray("result"); 
           for (int i = 0; i < membersArray.length(); i++) { 
            JSONObject obj = membersArray.getJSONObject(i); 
            AllMember_Model amm = new AllMember_Model(); 
            amm.setUserID(obj.getString("userID")); 
            amm.setMemebrName(obj.getString("userName")); 
            amm.setFatherName(obj.getString("fatherName")); 
            amm.setDob(obj.getString("dob")); 
            amm.setOccupation(obj.getString("occupation")); 
            amm.setContactNumber(obj.getString("contactNumber")); 
            amm.setPermanentAddress(obj.getString("permanentAddress")); 
            amm.setImage(obj.getString("image")); 
            membersList.add(amm); 
           } 
           contactAdapter.notifyDataSetChanged(); 
           contactAdapter.setLoaded(); 
          } 
         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 
        } 
       }, new Response.ErrorListener() { 

      @Override 
      public void onErrorResponse(VolleyError error) { 
       Toast.makeText(MembersList_Activity.this, error.toString(), Toast.LENGTH_SHORT).show(); 
      } 
     }); 
     queue.add(jsonObjReq); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 

     if (MyUtils.isInternetAvailable(getApplicationContext())) { 
      subUrl = "hostelID=" + MyUtils.getValueFromSharedPreferences(MembersList_Activity.this, "hstl_ID", ""); 
      getAllMembersList(subUrl); 
     } else { 
      MyUtils.showAlertDialog(getApplicationContext(), getString(R.string.alerts), getString(R.string.noInternetMessage)); 
     } 
    } 

    private void getAllMembersList(String subUrl) { 

     progressBar.setVisibility(View.VISIBLE); 
     RequestQueue queue = Volley.newRequestQueue(this); 
     JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET, 
       MyUtils.BASE_URL + "Hostel/hostalUsers?" + subUrl, null, 
       new Response.Listener<JSONObject>() { 
        @Override 
        public void onResponse(JSONObject response) { 
         try { 
          status = response.getInt("status"); 
          Message = response.getString("message"); 
          if (status == 1) { 
           recyclerView.setVisibility(View.VISIBLE); 
           noData.setVisibility(View.GONE); 

           JSONArray membersArray = response.getJSONArray("result"); 
           for (int i = 0; i < membersArray.length(); i++) { 
            JSONObject obj = membersArray.getJSONObject(i); 
            AllMember_Model amm = new AllMember_Model(); 
            amm.setUserID(obj.getString("userID")); 
            amm.setMemebrName(obj.getString("userName")); 
            amm.setFatherName(obj.getString("fatherName")); 
            amm.setDob(obj.getString("dob")); 
            amm.setOccupation(obj.getString("occupation")); 
            amm.setContactNumber(obj.getString("contactNumber")); 
            amm.setPermanentAddress(obj.getString("permanentAddress")); 
            amm.setImage(obj.getString("image")); 
            membersList.add(amm); 
           } 
           recyclerView.setAdapter(contactAdapter); 
          } else { 
           recyclerView.setVisibility(View.GONE); 
           noData.setVisibility(View.VISIBLE); 
           noData.setText(Message); 
          } 
         } catch (JSONException e) { 
          e.printStackTrace(); 

         } 
         progressBar.setVisibility(View.INVISIBLE); 
        } 
       }, new Response.ErrorListener() { 

      @Override 
      public void onErrorResponse(VolleyError error) { 
       Toast.makeText(MembersList_Activity.this, error.toString(), Toast.LENGTH_SHORT).show(); 
       progressBar.setVisibility(View.INVISIBLE); 
      } 
     }); 
     queue.add(jsonObjReq); 
    } 
} 

适配器类别

package com.veda.pravra.Adapters; 

/** 
* Created by veda on 7/9/2017. 
*/ 

import android.app.Activity; 
import android.app.Dialog; 
import android.content.Context; 
import android.content.Intent; 
import android.support.v7.widget.LinearLayoutManager; 
import android.support.v7.widget.RecyclerView; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.CheckBox; 
import android.widget.CompoundButton; 
import android.widget.EditText; 
import android.widget.LinearLayout; 
import android.widget.ProgressBar; 
import android.widget.TextView; 
import android.widget.Toast; 

import com.veda.pravra.hosteladmin.Activites.AddMember; 
import com.veda.pravra.hosteladmin.Global.MyUtils; 
import com.veda.pravra.hosteladmin.Interface.OnLoadMoreListener; 
import com.veda.pravra.hosteladmin.Models.AllMember_Model; 
import com.veda.pravra.hosteladmin.R; 

import java.util.ArrayList; 
import java.util.List; 

import butterknife.BindView; 
import butterknife.ButterKnife; 

import static android.R.id.message; 


public class MembersList_Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { 
    private final int VIEW_TYPE_ITEM = 0; 
    private final int VIEW_TYPE_LOADING = 1; 
    OnLoadMoreListener onLoadMoreListener; 
    private boolean isLoading; 
    private Activity activity; 
    private List<AllMember_Model> contacts; 
    private int visibleThreshold = 10; 
    private int lastVisibleItem, totalItemCount; 

    public MembersList_Adapter(RecyclerView recyclerView, List<AllMember_Model> contacts, Activity activity) { 
     this.contacts = contacts; 
     this.activity = activity; 

     final LinearLayoutManager linearLayoutManager = (LinearLayoutManager) recyclerView.getLayoutManager(); 
     recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { 
      @Override 
      public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
       super.onScrolled(recyclerView, dx, dy); 
       totalItemCount = linearLayoutManager.getItemCount(); 
       lastVisibleItem = linearLayoutManager.findLastVisibleItemPosition(); 
       if (!isLoading && totalItemCount <= (lastVisibleItem + visibleThreshold)) { 
        if (onLoadMoreListener != null) { 
         onLoadMoreListener.onLoadMore(); 
        } 
        isLoading = true; 
       } 
      } 
     }); 
    } 

    public void setOnLoadMoreListener(OnLoadMoreListener mOnLoadMoreListener) { 
     this.onLoadMoreListener = mOnLoadMoreListener; 
    } 

    @Override 
    public int getItemViewType(int position) { 
     return contacts.get(position) == null ? VIEW_TYPE_LOADING : VIEW_TYPE_ITEM; 
    } 

    @Override 
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     if (viewType == VIEW_TYPE_ITEM) { 
      View view = LayoutInflater.from(activity).inflate(R.layout.members_list_row, parent, false); 
      return new UserViewHolder(view); 
     } else if (viewType == VIEW_TYPE_LOADING) { 
      View view = LayoutInflater.from(activity).inflate(R.layout.item_loading, parent, false); 
      return new LoadingViewHolder(view); 
     } 
     return null; 
    } 

    @Override 
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 


     if (holder instanceof UserViewHolder) { 
      AllMember_Model itemList = contacts.get(position); 
      UserViewHolder userViewHolder = (UserViewHolder) holder; 
      if (MyUtils.pendingMembersList) { 
       userViewHolder.buttonsLayout.setVisibility(View.VISIBLE); 
      } 
      userViewHolder.memberName.setText(itemList.getMembrName()); 
      userViewHolder.memberDOB.setText(itemList.getDob()); 
      userViewHolder.memberOccupation.setText(itemList.getOccupation()); 
      userViewHolder.memberAddress.setText(itemList.getPermanentAddress()); 
     } else if (holder instanceof LoadingViewHolder) { 
      LoadingViewHolder loadingViewHolder = (LoadingViewHolder) holder; 
      loadingViewHolder.progressBar.setIndeterminate(true); 
     } 
    } 

    @Override 
    public int getItemCount() { 
     return contacts == null ? 0 : contacts.size(); 
    } 

    public void setLoaded() { 
     isLoading = false; 
    } 

    //For alert dialog 
    public void ShowPaidDetailsDialog() { 

     final Dialog dialog = new Dialog(activity, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); 
     dialog.setContentView(R.layout.movetopaid_dialog); 
     dialog.setTitle(R.string.paymentConfirmation); 

     final CheckBox fullPaid = (CheckBox) dialog.findViewById(R.id.cb_fullPaid); 
     final CheckBox paidAmount = (CheckBox) dialog.findViewById(R.id.cb_PaidAmount); 
     final EditText etpaidAmount = (EditText) dialog.findViewById(R.id.et_PaidAmount); 
     Button update = (Button) dialog.findViewById(R.id.btnUpdate); 

     fullPaid.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       if (isChecked) { 
        paidAmount.setChecked(false); 
        etpaidAmount.setVisibility(View.GONE); 
       } 
      } 
     }); 

     paidAmount.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       if (isChecked) { 
        fullPaid.setChecked(false); 
        etpaidAmount.setVisibility(View.VISIBLE); 
       } 
      } 
     }); 

     update.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // Close dialog 
       if (paidAmount.isChecked()) { 
        if (etpaidAmount.getText().toString().isEmpty()) { 
         etpaidAmount.setError("Enter paid amount"); 
        } else { 

         Toast.makeText(activity, "paid", Toast.LENGTH_SHORT).show(); 
        } 
       } 
       dialog.dismiss(); 
      } 
     }); 
     dialog.show(); 
    } 

    private class LoadingViewHolder extends RecyclerView.ViewHolder { 
     public ProgressBar progressBar; 

     public LoadingViewHolder(View view) { 
      super(view); 
      progressBar = (ProgressBar) view.findViewById(R.id.progressBar1); 
     } 
    } 

    public class UserViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 

     @BindView(R.id.memberName) 
     TextView memberName; 
     @BindView(R.id.memberDOB) 
     TextView memberDOB; 
     @BindView(R.id.memberAddress) 
     TextView memberAddress; 
     @BindView(R.id.memberOccupation) 
     TextView memberOccupation; 
     @BindView(R.id.buttonsLayout) 
     LinearLayout buttonsLayout; 

     @BindView(R.id.btn_paid) 
     Button buttonPaid; 
     @BindView(R.id.btn_vacated) 
     Button buttonVacated; 

     public UserViewHolder(View view) { 
      super(view); 
      view.setOnClickListener(this); 
      ButterKnife.bind(this, view); 
      buttonPaid.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        ShowPaidDetailsDialog(); 
       } 
      }); 

      buttonVacated.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Toast.makeText(activity, "Vacated", Toast.LENGTH_SHORT).show(); 
       } 
      }); 
     } 

     @Override 
     public void onClick(View v) { 
      AllMember_Model itemList11 = contacts.get(getPosition()); 
      Intent i = new Intent(activity, AddMember.class); 
      i.putExtra("membersList", itemList11); 
      activity.startActivity(i); 
      //Toast.makeText(activity, "" + getPosition(), Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 
0
  • 拆下contacts.clear()从两个方法sendRequesttoServerForMoreDeals()& sendRequesttoServerForDeals()

  • 替换recyclerView。setAdapter(contactAdapter);在sendRequesttoServerForMoreDeals()中contactAdapter.notifyDataSetChanged();