2017-07-17 13 views
0

Ich habe eine App, die eine RecyclerView enthält. Beim ersten Start der App wird eine Serveranforderung für mehr Daten gesendet. Wenn der RecyclerView Scroll zum Ende kommt, gibt es einen Fortschrittsbalken, der erneut eine Serveranforderung für mehr Daten sendet. Aber das Problem ist, dass, wenn scroll zum Ende kommt es eine Server-Anfrage sendet, aber Daten nicht in der RecyclerView auffüllen.Mehr Daten werden nicht in Recyclerview in Android angezeigt?

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); 
} 

} 

Antwort

0

Sobald Daten auf recyclerview angelegt, so klar nicht nennen (contacts.clear()) auf Daten-Set, wenn Sie nicht wollen, um die vorhandenen Daten zu entfernen.

Warum sind Sie Adapter Einstellung wieder in der Web-Service-Antwort

recyclerView.setAdapter(contactAdapter); 

diese entfernen, sobald der Adapter-Set, Sie ust notifydatasetchanged()

einmal Ihre vorhandenen Datensatzes (Kontakte) aufrufen müssen aktualisiert mit neue Daten vom Server, oder rufen Sie contactAdapter.notifyItemInserted(contacts.size() -1) nach dem Hinzufügen jedes Kontakts

+0

Ich rufe sendRequesttoServerForMoreDeals() – Niraj

+0

keine Notwendigkeit Adapter wieder einzustellen, sobald Daten eingestellt ist, rufen Sie einfach notifydatasetchanged – warlock

0

Tun Sie unten die Änderung in Ihrem sendRequesttoServerForMoreDeals().

  • Entfernen contacts.clear();
  • Entfernen recycleView.setAdapter (contactAdapter);
  • Hinzufügen contactAdapter.notifyDataSetChanged(); nach dem Hinzufügen aller weiteren Angebote.
0

Anruf recyclerView.setAdapter (contactAdapter); onCreate

dann einfach anrufen contactAdapter.notifyDataSetChanged(); sobald die Daten geändert wurden.

0

Unten ist ein funktionierendes Beispiel. Bitte überprüfen Sie es einmal und schnelle Lösung für dieses Problem ist

Ändern Sie die folgenden Zeilen Code

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

zu

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

Ich bin nicht sicher, genau diese Antwort ist, aber versuchen, dieses eine Mal. Aber unter dem Code funktioniert. :)

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); 
    } 
} 

Adapter Klasse

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
  • Remove contacts.clear() von beiden Verfahren sendRequesttoServerForMoreDeals() & sendRequesttoServerForDeals()

  • RecyclerView ersetzen.setAdapter (contactAdapter); in sendRequesttoServerForMoreDeals() an contactAdapter.notifyDataSetChanged();

Verwandte Themen