this is my jsonarray
{
"status": "Success",
"message": "2 results found.",
"data": [
{
"tag_name": "faverate",
"orders": [
{
"id": "24",
"order_no": "78707200200724015424",
"order_date": "24/07/2020",
"order_start_date": "24/07/2020",
"name": "Samir M1234",
"profile_pic": "http://ujalvomigroup.com/pepow/upload/profile_pic/5e5a2b85cdba5.jpeg",
"phone_no": "xxxxxxxxxx",
"primary_skill": "Electrician",
"secondary_skill": "Carpenter",
"work_location": "Patiala House Courts Complex "
}
{
"id": "25",
"order_no": "78707200200724015424",
"order_date": "24/07/2020",
"order_start_date": "24/07/2020",
"name": "amit M1234",
"profile_pic": "http://ujalvomigroup.com/pepow/upload/profile_pic/5e5a2b85cdba5.jpeg",
"phone_no": "xxxxxxxxxx",
"primary_skill": "Electrician",
"secondary_skill": "Carpenter",
"work_location": "Patiala House Courts Complex "
}
]
},
{
"tag_name": "sommmm",
"orders": [
{
"id": "23",
"order_no": "2046049468200724015327",
"order_date": "24/07/2020",
"order_start_date": "24/07/2020",
"name": "Samir M1234",
"profile_pic":"http://ujalvomigroup.com/pepow/upload/profile_pic/5e5a2b85cdba5.jpeg",
"phone_no": "xxxxxxxxxx",
"primary_skill": "Electrician",
"secondary_skill": "Carpenter",
"work_location": "Patiala House Courts Complex "
}
]
}
]
}
Adapter.class
public class Inprogress_Adapter extends RecyclerView.Adapter<Inprogress_Adapter.InprogressViewHolder> {
private LayoutInflater inflater;
private List<Track_Inp_Data> emp_sch_data;
Context ctx;
OnItemClickListener mListener;
public interface OnItemClickListener{
void onViewClick(int position);
void onClickAvailable(int position);
void onCallClick(int position);
void onExtendClick(int position);
void onPaymentHistoryClick(int position);
}
public void setOnITemClickListener(OnItemClickListener listener){
mListener = listener;
}
public Inprogress_Adapter(Context ctx,List<Track_Inp_Data> emp_sch_data) {
this.inflater = inflater.from(ctx);
this.emp_sch_data = emp_sch_data;
this.ctx = ctx;
}
@NonNull
@Override
public Inprogress_Adapter.InprogressViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.tracking_inprogress_expans, parent, false);
InprogressViewHolder holder = new InprogressViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull Inprogress_Adapter.InprogressViewHolder holder, int position) {
String tag = emp_sch_data.get(position).getTag_name();
holder.tagname.setText(tag);
Log.d("tag",tag);
holder.workerid.setText("#"+emp_sch_data.get(position).getOrders().get(0).getOrder_no());
holder.date.setText(emp_sch_data.get(position).getOrders().get(0).getOrder_date());
holder.empdate.setText(emp_sch_data.get(position).getOrders().get(0).getOrder_start_date());
holder.name.setText(emp_sch_data.get(position).getOrders().get(0).getName());
holder.skill.setText(emp_sch_data.get(position).getOrders().get(0).getPrimary_skill()+","+emp_sch_data.get(position).getOrders().get(0).getSecondary_skill());
holder.location.setText(emp_sch_data.get(position).getOrders().get(0).getWork_location());
Picasso.with(ctx).load(emp_sch_data.get(position).getOrders().get(0).getProfile_pic()).into(holder.profileimage);
}
@Override
public int getItemCount() {
return emp_sch_data.size();
}
public class InprogressViewHolder extends RecyclerView.ViewHolder {
TextView workerid,date,empdate,name,skill,location,startdate,enddate,checkavailable,tagname;
Button pay,paymenthistory,extend;
ImageView call,profileimage;
public InprogressViewHolder(@NonNull View itemView) {
super(itemView);
workerid=itemView.findViewById(R.id.Bookingid);
date=itemView.findViewById(R.id.startdate);
empdate=itemView.findViewById(R.id.enddate);
name = itemView.findViewById(R.id.firstname);
skill = itemView.findViewById(R.id.skill);
location = itemView.findViewById(R.id.location);
startdate = itemView.findViewById(R.id.startdate);
enddate = itemView.findViewById(R.id.enddate);
checkavailable= itemView.findViewById(R.id.checkavailable);
tagname=itemView.findViewById(R.id.tagname);
pay = itemView.findViewById(R.id.pay);
paymenthistory = itemView.findViewById(R.id.paymenthistory);
extend = itemView.findViewById(R.id.extend);
call = itemView.findViewById(R.id.call);
profileimage = itemView.findViewById(R.id.profileimage);
paymenthistory.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mListener !=null){
int position = getAdapterPosition();
if (position!= RecyclerView.NO_POSITION){
mListener.onPaymentHistoryClick(position);
}
}
}
});
extend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mListener !=null){
int position = getAdapterPosition();
if (position!= RecyclerView.NO_POSITION){
mListener.onExtendClick(position);
}
}
}
});
call.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mListener !=null){
int position = getAdapterPosition();
if (position!= RecyclerView.NO_POSITION){
mListener.onCallClick(position);
}
}
}
});
checkavailable.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mListener !=null){
int position = getAdapterPosition();
if (position!= RecyclerView.NO_POSITION){
mListener.onClickAvailable(position);
}
}
}
});
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mListener !=null){
int position = getAdapterPosition();
if (position!= RecyclerView.NO_POSITION){
mListener.onViewClick(position);
}
}
}
});
Typeface font = Typeface.createFromAsset(ctx.getAssets(),"font/Uber Move Text.ttf");
workerid.setTypeface(font);
date.setTypeface(font);
empdate.setTypeface(font);
name.setTypeface(font);
skill.setTypeface(font);
location.setTypeface(font);
startdate.setTypeface(font);
enddate.setTypeface(font);
paymenthistory.setTypeface(font);
pay.setTypeface(font);
extend.setTypeface(font);
}
}
} Activity.class
private void getInprogress() {
jsonObject=new JsonObject();
jsonObject.addProperty("user_id",userid);
jsonObject.addProperty("order_status","In Progress");
RetrofitInterface jsonpost = ServiceGenerator.createService(RetrofitInterface.class,"http://ujalvomigroup.com/");
Call<Track_Inp_Repo> call = jsonpost.getinprogress(jsonObject);
call.enqueue(new Callback<Track_Inp_Repo>() {
@SuppressLint("RestrictedApi")
@Override
public void onResponse(Call<Track_Inp_Repo> call, retrofit2.Response<Track_Inp_Repo> response) {
if (response.isSuccessful()){
swipeRefreshLayout.setRefreshing(false);
assert response.body() != null;
dataLists = response.body().getData();
schedule_adapter=new Inprogress_Adapter(getContext(),dataLists);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
recyclerView.setHasFixedSize(true);
recyclerView.setAdapter(schedule_adapter);
schedule_adapter.setOnITemClickListener(new Inprogress_Adapter.OnItemClickListener() {
@Override
public void onViewClick(int position) {
// showUpdateDialog();
OrderId = dataLists.get(position).getOrders().get(0).getId();
}
@Override
public void onClickAvailable(int position) {
availabledate();
}
@Override
public void onCallClick(int position) {
SharedPreferences sharedPreferences = getContext().getSharedPreferences("Callshared",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("Clicked","call");
editor.apply();
Intent callIntent = new Intent(Intent.ACTION_CALL);
String Phonenumber = dataLists.get(position).getOrders().get(0).getPhone_no();
callIntent.setData(Uri.parse("tel:"+Phonenumber));
if (ActivityCompat.checkSelfPermission(getContext(),android.Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale((Activity) getContext(),
android.Manifest.permission.CALL_PHONE)) {
} else {
ActivityCompat.requestPermissions((Activity) getContext(),
new String[]{android.Manifest.permission.CALL_PHONE},
MY_PERMISSIONS_REQUEST_CALL_PHONE);
}
}
getContext().startActivity(callIntent);
}
@Override
public void onExtendClick(int position) {
datePicker();
}
@Override
public void onPaymentHistoryClick(int position) {
Dialog dialog = new Dialog(getContext());
dialog.setContentView(R.layout.paymenthistory);
dialog.show();
}
});
if (response.body().getData().size()==0){
recyclerView.setVisibility(View.GONE);
swipeRefreshLayout.setRefreshing(false);
// nodata.setVisibility(View.VISIBLE);
}else {
swipeRefreshLayout.setRefreshing(false);
// nodata.setVisibility(View.GONE);
recyclerView.setVisibility(View.VISIBLE);
}
}else {
swipeRefreshLayout.setRefreshing(false);
Log.d("else", String.valueOf(response.errorBody()));
}
}
@SuppressLint("RestrictedApi")
@Override
public void onFailure(Call<Track_Inp_Repo> call, Throwable t) {
Log.d("onfail",String.valueOf(t.getMessage()));
swipeRefreshLayout.setRefreshing(false);
}
});
i have tried above code and getting the data in one recyclerview list with tag array but i am unable to display second array with dynamically in recyclerview, it will remove first data (id=24) with second data (id=25) in second arraylist, so i need help with it
Thankyou so much
You could add a method in the adapter class as the following:
And call the method when you want to swap data source:
To append another list, you could refer addAll