Solucionado (ver solução)
Solucionado
(ver solução)
33
respostas

Setar resposta da API em um Recycler

Ajuda.... Já tentei de várias formas montar meu model e adapter para aparecer uma lista com as informações vindas da api usando o recycler.

essa é a resposta vinda da API:

{"status":"success","shoppingLists":[{"id":3,"month":"Agosto","year":2021,"start":"2021-07-28","end":"2021-08-04","status":"Fechada","discount":null,"created_by":1,"shopping_list_type_id":1,"created_at":"2021-07-28T11:44:15.000000Z","updated_at":"2021-08-05T04:00:29.000000Z"},{"id":2,"month":"Julho","year":2021,"start":"2021-06-14","end":"2021-06-16","status":"Fechada","discount":null,"created_by":1,"shopping_list_type_id":1,"created_at":"2021-06-14T14:58:28.000000Z","updated_at":"2021-06-17T04:00:29.000000Z"}]}

tenho duas listas... preciso de ajuda para setar as informações recebidas (asynctask), no recycler.

33 respostas

public class Lista implements Parcelable {

@SerializedName("status")
@Ignore
private String status;

@SerializedName("shoppingLists")
private List<ShoppingLists> shoppingLists;

protected Lista(Parcel in) {
    status = in.readString();
    shoppingLists = in.createTypedArrayList(ShoppingLists.CREATOR);
}

public static final Creator<Lista> CREATOR = new Creator<Lista>() {
    @Override
    public Lista createFromParcel(Parcel in) {
        return new Lista(in);
    }

    @Override
    public Lista[] newArray(int size) {
        return new Lista[size];
    }
};

public List<ShoppingLists> getShoppingLists() {
    return shoppingLists;
}

public String getStatus() {
    return status;
}


@Override
public int describeContents() {
    return 0;
}

@Override
public void writeToParcel(Parcel parcel, int i) {
    parcel.writeString(status);
    parcel.writeTypedList(shoppingLists);

}

}

public class ShoppingLists implements Parcelable {

@SerializedName("id")
@Expose
private int id;
@SerializedName("month")
@Expose
private String month;
@SerializedName("year")
@Expose
private int year;
@SerializedName("start")
@Expose
private String start;
@SerializedName("end")
@Expose
private String end;
@SerializedName("status")
@Expose
private String status;
@SerializedName("discount")
@Expose
private int discount;
@SerializedName("created_by")
@Expose
private int created_by;
@SerializedName("shopping_list_type_id")
@Expose
private int shopping_list_type_id;
@SerializedName("created_at")
@Expose
private String created_at;
@SerializedName("updated_at")
@Expose
private String updated_at;


protected ShoppingLists(Parcel in) {
    id = in.readInt();
    month = in.readString();
    year = in.readInt();
    start = in.readString();
    end = in.readString();
    status = in.readString();
    discount = in.readInt();
    created_by = in.readInt();
    shopping_list_type_id = in.readInt();
    created_at = in.readString();
    updated_at = in.readString();
}

public static final Creator<ShoppingLists> CREATOR = new Creator<ShoppingLists>() {
    @Override
    public ShoppingLists createFromParcel(Parcel in) {
        return new ShoppingLists(in);
    }

    @Override
    public ShoppingLists[] newArray(int size) {
        return new ShoppingLists[size];
    }
};

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getMonth() {
    return month;
}

public void setMonth(String month) {
    this.month = month;
}

public int getYear() {
    return year;
}

public void setYear(int year) {
    this.year = year;
}

public String getStart() {
    return start;
}

public void setStart(String start) {
    this.start = start;
}

public String getEnd() {
    return end;
}

public void setEnd(String end) {
    this.end = end;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

public int getDiscount() {
    return discount;
}

public void setDiscount(int discount) {
    this.discount = discount;
}

public int getCreated_by() {
    return created_by;
}

public void setCreated_by(int created_by) {
    this.created_by = created_by;
}

public int getShopping_list_type_id() {
    return shopping_list_type_id;
}

public void setShopping_list_type_id(int shopping_list_type_id) {
    this.shopping_list_type_id = shopping_list_type_id;
}

public String getCreated_at() {
    return created_at;
}

public void setCreated_at(String created_at) {
    this.created_at = created_at;
}

public String getUpdated_at() {
    return updated_at;
}

public void setUpdated_at(String updated_at) {
    this.updated_at = updated_at;
}

@Override
public int describeContents() {
    return 0;
}

@Override
public void writeToParcel(Parcel parcel, int i) {
    parcel.writeInt(id);
    parcel.writeString(month);
    parcel.writeInt(year);
    parcel.writeString(start);
    parcel.writeString(end);
    parcel.writeString(status);

}

}

public class ListasRetrofitTask extends AsyncTask {

@SuppressLint("StaticFieldLeak")
private final Context context;

public ListasRetrofitTask(Context context) {
    this.context = context;
}

@Override
protected Object doInBackground(Object[] objects) {
    User_DAO userDAO = Market_BD.getInstance(context).getUserDAO();
    JsonObject jsonObject = new JsonObject();
    jsonObject.addProperty("token", userDAO.consultaToken());
    DateService service = new MarketRetrofit().getDateService();
    Call<Lista> call = service.lista(jsonObject);
    call.enqueue(new Callback<Lista>() {
        @Override
        public void onResponse(Call<Lista> call, Response<Lista> response) {
            if(response.isSuccessful()){
                Lista body = response.body();
                List<ShoppingLists> shoppingLists = body.getShoppingLists();
                Log.i("TAMANHO LISTA", String.valueOf(shoppingLists.size()));
                Intent in = new Intent(context, ListaMercado.class);
                in.putExtra("LIST", (Parcelable) shoppingLists);
            }
        }

        @Override
        public void onFailure(Call<Lista> call, Throwable t) {

        }
    });

    return null;
}

@Override
protected void onPreExecute() {
    super.onPreExecute();
    Toast.makeText(context, "Buscando histórico de listas...", Toast.LENGTH_SHORT).show();
}

}

private void configLista() {
    List<Lista> dados;
    dados = getIntent().getParcelableArrayListExtra("LIST");
    RecyclerView recyclerView = findViewById(R.id.recycler_lista);
    recyclerView.setAdapter(new AdapterLista(this, dados));
    recyclerView.setHasFixedSize(true);
}
2021-08-11 11:12:43.993 8835-8877/com.example.appmarket I/okhttp.OkHttpClient: {"status":"success","shoppingLists":[{"id":3,"month":"Agosto","year":2021,"start":"2021-07-28","end":"2021-08-04","status":"Fechada","discount":null,"created_by":1,"shopping_list_type_id":1,"created_at":"2021-07-28T11:44:15.000000Z","updated_at":"2021-08-05T04:00:29.000000Z"},{"id":2,"month":"Julho","year":2021,"start":"2021-06-14","end":"2021-06-16","status":"Fechada","discount":null,"created_by":1,"shopping_list_type_id":1,"created_at":"2021-06-14T14:58:28.000000Z","updated_at":"2021-06-17T04:00:29.000000Z"}]}
2021-08-11 11:12:43.993 8835-8877/com.example.appmarket I/okhttp.OkHttpClient: <-- END HTTP (517-byte body)
2021-08-11 11:12:44.018 8835-8835/com.example.appmarket I/TAMANHO LISTA: 2
2021-08-11 11:12:44.019 8835-8835/com.example.appmarket D/AndroidRuntime: Shutting down VM
2021-08-11 11:12:44.023 8835-8835/com.example.appmarket E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.appmarket, PID: 8835
    java.lang.ClassCastException: java.util.ArrayList cannot be cast to android.os.Parcelable
        at com.example.appmarket.asynctask.ListasRetrofitTask$1.onResponse(ListasRetrofitTask.java:59)
        at retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1.lambda$onResponse$0$DefaultCallAdapterFactory$ExecutorCallbackCall$1(DefaultCallAdapterFactory.java:89)
        at retrofit2.-$$Lambda$DefaultCallAdapterFactory$ExecutorCallbackCall$1$hVGjmafRi6VitDIrPNdoFizVAdk.run(Unknown Source:6)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:235)
        at android.app.ActivityThread.main(ActivityThread.java:6760)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
2021-08-11 11:12:44.044 8835-8835/com.example.appmarket I/Process: Sending signal. PID: 8835 SIG: 9

Julia, você precisa usar o método putParcelableArrayListExtra no lugar do putExtra comum.

@Override
protected Object doInBackground(Object[] objects) {
    User_DAO userDAO = Market_BD.getInstance(context).getUserDAO();
    JsonObject jsonObject = new JsonObject();
    jsonObject.addProperty("token", userDAO.consultaToken());
    DateService service = new MarketRetrofit().getDateService();
    Call<Lista> call = service.lista(jsonObject);
    call.enqueue(new Callback<Lista>() {
        @Override
        public void onResponse(Call<Lista> call, Response<Lista> response) {
            if(response.isSuccessful()){
                Lista body = response.body();
                List<ShoppingLists> shoppingLists = body.getShoppingLists();
                Log.i("TAMANHO LISTA", String.valueOf(shoppingLists.size()));
                Intent in = new Intent(context, ListaMercado.class);
                in.putParcelableArrayListExtra("LIST",  shoppingLists); // essa linha muda
            }
        }

        @Override
        public void onFailure(Call<Lista> call, Throwable t) {

        }
    });

    return null;
}
2021-08-12 07:47:38.556 11567-11613/com.example.appmarket I/okhttp.OkHttpClient: {"status":"success","shoppingLists":[{"id":3,"month":"Agosto","year":2021,"start":"2021-07-28","end":"2021-08-04","status":"Fechada","discount":null,"created_by":1,"shopping_list_type_id":1,"created_at":"2021-07-28T11:44:15.000000Z","updated_at":"2021-08-05T04:00:29.000000Z"},{"id":2,"month":"Julho","year":2021,"start":"2021-06-14","end":"2021-06-16","status":"Fechada","discount":null,"created_by":1,"shopping_list_type_id":1,"created_at":"2021-06-14T14:58:28.000000Z","updated_at":"2021-06-17T04:00:29.000000Z"}]}
2021-08-12 07:47:38.557 11567-11613/com.example.appmarket I/okhttp.OkHttpClient: <-- END HTTP (517-byte body)
2021-08-12 07:47:38.568 11567-11567/com.example.appmarket I/TAMANHO LISTA: 2
2021-08-12 07:47:38.597 11567-11567/com.example.appmarket W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@40e5030
2021-08-12 07:47:38.736 11567-11567/com.example.appmarket D/AndroidRuntime: Shutting down VM
2021-08-12 07:47:38.739 11567-11567/com.example.appmarket E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.appmarket, PID: 11567
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.appmarket/com.example.appmarket.ui.ListaMercado}: java.lang.RuntimeException: Parcel android.os.Parcel@b3516ea: Unmarshalling unknown type code 7143521 at offset 244
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2979)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3114)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1871)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:235)
        at android.app.ActivityThread.main(ActivityThread.java:6760)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
     Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@b3516ea: Unmarshalling unknown type code 7143521 at offset 244
        at android.os.Parcel.readValue(Parcel.java:2747)
        at android.os.Parcel.readListInternal(Parcel.java:3098)
        at android.os.Parcel.readArrayList(Parcel.java:2319)
        at android.os.Parcel.readValue(Parcel.java:2689)
        at android.os.Parcel.readArrayMapInternal(Parcel.java:3037)
        at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:288)
        at android.os.BaseBundle.unparcel(BaseBundle.java:232)
        at android.os.Bundle.getParcelableArrayList(Bundle.java:986)
        at android.content.Intent.getParcelableArrayListExtra(Intent.java:7512)
        at com.example.appmarket.ui.ListaMercado.configLista(ListaMercado.java:47)
        at com.example.appmarket.ui.ListaMercado.onCreate(ListaMercado.java:26)
        at android.app.Activity.performCreate(Activity.java:7136)
        at android.app.Activity.performCreate(Activity.java:7127)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2959)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3114) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1871) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:235) 
        at android.app.ActivityThread.main(ActivityThread.java:6760) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911) 
2021-08-12 07:47:38.758 11567-11567/com.example.appmarket I/Process: Sending signal. PID: 11567 SIG: 9

public class ListaMercado extends AppCompatActivity {

private Toolbar toolbar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_lista);
    config_toolbar();
    configLista();
    Log.d("CHAMADO ONCREATE", "onCreateLista");
}

private void config_toolbar() {
    toolbar = findViewById(R.id.toolbar_listas);
    toolbar.setTitle("Histórico de Listas");
    setSupportActionBar(toolbar);
    if (getSupportActionBar() != null) {
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }
}

@Override
public boolean onSupportNavigateUp() {
    finish();
    return true;
}

private void configLista() {
    List<Lista> dados;
    dados = getIntent().getParcelableArrayListExtra("LIST");  /// ele acusa o erro nesta linha 
    RecyclerView recyclerView = findViewById(R.id.recycler_lista);
    recyclerView.setAdapter(new AdapterLista(this, dados));
    recyclerView.setHasFixedSize(true);
}

}

public class ListasRetrofitTask extends AsyncTask {

@SuppressLint("StaticFieldLeak")
private final Context context;

public ListasRetrofitTask(Context context) {
    this.context = context;
}

@Override
protected Object doInBackground(Object[] objects) {
    User_DAO userDAO = Market_BD.getInstance(context).getUserDAO();
    JsonObject jsonObject = new JsonObject();
    jsonObject.addProperty("token", userDAO.consultaToken());
    DateService service = new MarketRetrofit().getDateService();
    Call<Lista> call = service.lista(jsonObject);
    call.enqueue(new Callback<Lista>() {
        @Override
        public void onResponse(Call<Lista> call, Response<Lista> response) {
            if(response.isSuccessful()){
                Lista body = response.body();
                List<ShoppingLists> shoppingLists = body.getShoppingLists();
                Log.i("TAMANHO LISTA", String.valueOf(shoppingLists.size()));
                Intent in = new Intent(context, ListaMercado.class);
                in.putParcelableArrayListExtra("LIST", (ArrayList<? extends Parcelable>) shoppingLists);
                // ele não aceitou daquela forma 
                context.startActivity(in);
            }
        }

        @Override
        public void onFailure(Call<Lista> call, Throwable t) {

        }
    });


    return null;
}

Não estou conseguindo evoluir na questão de passar dados que vem da api em uma asynctask para uma activity...

No caso você pode tentar colocar um Serializable, não é a melhor opção, mas certeza que funciona, conforme pode ver na documentação

O que muda é que na hora de por tu vai colocar a lista de direto, precisa ser um array list, porque array list é serializable, na hora de pegar, tu vai usar o getSerializableExtra, doc dele

Chuto que isso vai rolar

Já tentei.... mas vou tentar novamente! Obg

2021-08-13 09:57:37.257 13291-13520/com.example.appmarket I/okhttp.OkHttpClient: {"status":"success","shoppingLists":[{"id":3,"month":"Agosto","year":2021,"start":"2021-07-28","end":"2021-08-04","status":"Fechada","discount":null,"created_by":1,"shopping_list_type_id":1,"created_at":"2021-07-28T11:44:15.000000Z","updated_at":"2021-08-05T04:00:29.000000Z"},{"id":2,"month":"Julho","year":2021,"start":"2021-06-14","end":"2021-06-16","status":"Fechada","discount":null,"created_by":1,"shopping_list_type_id":1,"created_at":"2021-06-14T14:58:28.000000Z","updated_at":"2021-06-17T04:00:29.000000Z"}]}
2021-08-13 09:57:37.258 13291-13520/com.example.appmarket I/okhttp.OkHttpClient: <-- END HTTP (517-byte body)
2021-08-13 09:57:37.267 13291-13291/com.example.appmarket I/LISTA API: [com.example.appmarket.model.Listas$ShoppingLists@68790b1, com.example.appmarket.model.Listas$ShoppingLists@fb4b996]
2021-08-13 09:57:37.268 13291-13291/com.example.appmarket I/TAMANHO LISTA API: 2
2021-08-13 09:57:37.309 13291-13291/com.example.appmarket W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@42d0821
2021-08-13 09:57:37.395 13291-13302/com.example.appmarket W/System: A resource failed to call close. 

ESTÁ SENDO ENVIADA DE ACTIVITIES..... 
2021-08-13 09:57:37.395 13291-13291/com.example.appmarket I/LISTA RECEBIDA: [com.example.appmarket.model.Listas$ShoppingLists@ba59082, com.example.appmarket.model.Listas$ShoppingLists@e125393]
2021-08-13 09:57:37.395 13291-13291/com.example.appmarket I/LISTA RECEBIDO TAM: 2

Usando o serializable, estou conseguindo passar a lista do processo em background...para a activity ListaMercado.java. Desta activity eu mando via parâmetro no construtor para o adapter do recycler - ele exibe a tela do recycler porém...apenas 1 lista do conteúdo..... a do id 3 .

public class ListasRetrofitTask extends AsyncTask {

@SuppressLint("StaticFieldLeak")
private final Context context;

public ListasRetrofitTask(Context context) {
    this.context = context;
}

@Override
protected Object doInBackground(Object[] objects) {
    User_DAO userDAO = Market_BD.getInstance(context).getUserDAO();
    JsonObject jsonObject = new JsonObject();
    jsonObject.addProperty("token", userDAO.consultaToken());
    DateService service = new MarketRetrofit().getDateService();
    Call<Listas> call = service.lista(jsonObject);
    call.enqueue(new Callback<Listas>() {
        @Override
        public void onResponse(Call<Listas> call, Response<Listas> response) {
            if(response.isSuccessful()){
                Listas body = response.body();
                ArrayList<Listas.ShoppingLists> shoppingLists = body.getShoppingLists();
                Log.i("LISTA API", String.valueOf(shoppingLists));
                Log.i("TAMANHO LISTA API", String.valueOf(shoppingLists.size()));
                Intent in = new Intent(context, ListaMercado.class);
                in.putExtra("LIST", shoppingLists);
                context.startActivity(in);
            }
        }

        @Override
        public void onFailure(Call<Listas> call, Throwable t) {

        }
    });

public class Listas implements Serializable {

@SerializedName("status")
@Ignore
private String status;

@SerializedName("shoppingLists")
private ArrayList<ShoppingLists> shoppingLists;

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

public ArrayList<ShoppingLists> getShoppingLists() {
    return shoppingLists;
}

public void setShoppingLists(ArrayList<ShoppingLists> shoppingLists) {
    this.shoppingLists = shoppingLists;
}

public class ShoppingLists implements Serializable{

    @SerializedName("id")
    @Expose
    private int id;
    @SerializedName("month")
    @Expose
    private String month;
    @SerializedName("year")
    @Expose
    private int year;
    @SerializedName("start")
    @Expose
    private String start;
    @SerializedName("end")
    @Expose
    private String end;
    @SerializedName("status")
    @Expose
    private String status;
    @SerializedName("discount")
    @Expose
    private int discount;
    @SerializedName("created_by")
    @Expose
    private int created_by;
    @SerializedName("shopping_list_type_id")
    @Expose
    private int shopping_list_type_id;
    @SerializedName("created_at")
    @Expose
    private String created_at;
    @SerializedName("updated_at")
    @Expose
    private String updated_at;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getMonth() {
        return month;
    }

    public void setMonth(String month) {
        this.month = month;
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    public String getStart() {
        return start;
    }

    public void setStart(String start) {
        this.start = start;
    }

    public String getEnd() {
        return end;
    }

    public void setEnd(String end) {
        this.end = end;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public int getDiscount() {
        return discount;
    }

    public void setDiscount(int discount) {
        this.discount = discount;
    }

    public int getCreated_by() {
        return created_by;
    }

    public void setCreated_by(int created_by) {
        this.created_by = created_by;
    }

    public int getShopping_list_type_id() {
        return shopping_list_type_id;
    }

    public void setShopping_list_type_id(int shopping_list_type_id) {
        this.shopping_list_type_id = shopping_list_type_id;
    }

    public String getCreated_at() {
        return created_at;
    }

    public void setCreated_at(String created_at) {
        this.created_at = created_at;
    }

    public String getUpdated_at() {
        return updated_at;
    }

    public void setUpdated_at(String updated_at) {
        this.updated_at = updated_at;
    }
}

}

public class ListaMercado extends AppCompatActivity {

private Toolbar toolbar;
private ArrayList<Listas.ShoppingLists> dados;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_lista);
    config_toolbar();
    configLista();
    Log.d("CHAMADO ONCREATE", "onCreateLista");
}

private void config_toolbar() {
    toolbar = findViewById(R.id.toolbar_listas);
    toolbar.setTitle("Histórico de Listas");
    setSupportActionBar(toolbar);
    if (getSupportActionBar() != null) {
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }
}

@Override
public boolean onSupportNavigateUp() {
    finish();
    return true;
}

private void configLista() {
    dados = (ArrayList<Listas.ShoppingLists>) getIntent().getSerializableExtra("LIST");
    Log.i("LISTA RECEBIDA", String.valueOf(dados));
    Log.i("LISTA RECEBIDO TAM", String.valueOf(dados.size()));
    RecyclerView recyclerView = findViewById(R.id.recycler_lista);
    recyclerView.setAdapter(new AdapterLista(this, dados));
    recyclerView.setHasFixedSize(true);
}

}

public class AdapterLista extends RecyclerView.Adapter<AdapterLista.ViewHolderLista> {

private final ArrayList<Listas.ShoppingLists> lista;
private final Context context;

public AdapterLista(Context context, ArrayList<Listas.ShoppingLists> lista){
    this.context = context;
    this.lista = lista;
}

@NonNull
@Override
public ViewHolderLista onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View lista = LayoutInflater.from(context)
            .inflate(R.layout.lista, parent, false);
    return new ViewHolderLista(lista);
}

@RequiresApi(api = Build.VERSION_CODES.O)
@Override
public void onBindViewHolder(@NonNull ViewHolderLista holder, int position) {

    lista.get(position);
    holder.inicio.setText((lista.get(position).getStart()));
    holder.fim.setText(lista.get(position).getEnd());
    holder.status.setText(lista.get(position).getStatus());
    holder.id.setText(String.valueOf(lista.get(position).getId()));
    int id = lista.get(position).getId();
    holder.ver.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(context, "item clicado", Toast.LENGTH_SHORT).show();
                new InfoListasRetrofitTask(context, String.valueOf(id)).execute();
        }
    });
}

@Override
public int getItemCount() {
    return lista.size();
}

class ViewHolderLista extends RecyclerView.ViewHolder{

    TextView inicio;
    TextView fim;
    TextView status;
    TextView id;
    ImageButton ver;

    public ViewHolderLista(@NonNull View itemView) {
        super(itemView);

        inicio = itemView.findViewById(R.id.tv_inicio);
        fim = itemView.findViewById(R.id.tv_fim);
        status = itemView.findViewById(R.id.status);
        id = itemView.findViewById(R.id.idLista);
        ver = itemView.findViewById(R.id.im_ver);
    }
}

}

Ai o problema é ver se está chegando a lista inteira no seu adapter e também ver como voce configurou seu adapter e as views que são exibidas.

Onde posso colocar um log no adapter para ver? Tem alguma sugestão ?

mostra pra gente o xml de cada item, só pra gente ter tudo aqui

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler_lista"
        android:layout_width="match_parent"
        android:layout_height="0dp"

        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/toolbar_listas"
        tools:layout_editor_absoluteX="0dp"
        tools:listitem="@layout/lista" />

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar_listas"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:minHeight="?attr/actionBarSize"
        android:theme="?attr/actionBarTheme"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <androidx.fragment.app.FragmentContainerView
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />


</androidx.constraintlayout.widget.ConstraintLayout>

não julgue o layout.... é apenas teste... kkkkkkkkkkkkkk bem feio!

coloquei um log no construtor do adapter.... ele mostra tamanho 2

acho que o problema é o match parent no pai da tela, imagino que tu possa usar o wrap content ou definir um tamanho fixo. faz esse teste e fala se funcionou

public class AdapterLista extends RecyclerView.Adapter<AdapterLista.ViewHolderLista> {

private final ArrayList<Listas.ShoppingLists> lista;
private final Context context;

public AdapterLista(Context context, ArrayList<Listas.ShoppingLists> lista){
    this.context = context;
    this.lista = lista;
    Log.i("LISTA ADAPTER", String.valueOf(lista.size()));
}

@NonNull
@Override
public ViewHolderLista onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View lista = LayoutInflater.from(context)
            .inflate(R.layout.lista, parent, false);
    return new ViewHolderLista(lista);
}

@RequiresApi(api = Build.VERSION_CODES.O)
@Override
public void onBindViewHolder(@NonNull ViewHolderLista holder, int position) {

    lista.get(position);
    holder.inicio.setText((lista.get(position).getStart()));
    holder.fim.setText(lista.get(position).getEnd());
    holder.status.setText(lista.get(position).getStatus());
    holder.id.setText(String.valueOf(lista.get(position).getId()));
    int id = lista.get(position).getId();
    holder.ver.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(context, "item clicado", Toast.LENGTH_SHORT).show();
                new InfoListasRetrofitTask(context, String.valueOf(id)).execute();
        }
    });
}

@Override
public int getItemCount() {
    return lista.size();
}

class ViewHolderLista extends RecyclerView.ViewHolder{

    TextView inicio;
    TextView fim;
    TextView status;
    TextView id;
    ImageButton ver;

    public ViewHolderLista(@NonNull View itemView) {
        super(itemView);

        inicio = itemView.findViewById(R.id.tv_inicio);
        fim = itemView.findViewById(R.id.tv_fim);
        status = itemView.findViewById(R.id.status);
        id = itemView.findViewById(R.id.idLista);
        ver = itemView.findViewById(R.id.im_ver);
    }
}

}

2021-08-13 10:11:40.315 15274-15274/com.example.appmarket I/LISTA ADAPTER: 2

Desculpa..... eu não entendi pode onde mudo???

acho que o problema é o match parent no pai da tela, imagino que tu possa usar o wrap content ou definir um tamanho fixo. faz esse teste e fala se funcionou

solução!

Julia, consegue mandar pra gente o arquivo: R.layout.lista

Meu chute é que nesse arquivo voce esteja usando match parent no pai, que faz com que utilize a tela inteira, por isso não está vendo o resto dos itens.

entendiiiii

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent">

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recycler_lista"
    android:layout_width="match_parent"
    android:layout_height="0dp"

    app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/toolbar_listas"
    tools:layout_editor_absoluteX="0dp"
    tools:listitem="@layout/lista" />

<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar_listas"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    android:theme="?attr/actionBarTheme"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<androidx.fragment.app.FragmentContainerView
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content"> // ALTEREI AQUI

        <TextView
            android:id="@+id/idLista"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/cardview_light_background"
            android:text="99"
            android:padding="5dp"
            android:textColor="@color/green_500"
            android:textSize="20sp"
            android:textStyle="bold"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <ImageButton
            android:id="@+id/im_ver"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/white"
            android:padding="15dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@drawable/ic_baseline_eye_24" />

        <TextView
            android:id="@+id/status"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="4dp"
            android:text="FECHADA"
            android:textSize="18sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="@+id/textView3"
            app:layout_constraintStart_toStartOf="@+id/textView3"
            app:layout_constraintTop_toBottomOf="@+id/textView3" />

        <TextView
            android:id="@+id/tv_inicio"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="4dp"
            android:text="00/00/00 "
            android:textSize="18sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="@+id/textView"
            app:layout_constraintStart_toStartOf="@+id/textView"
            app:layout_constraintTop_toBottomOf="@+id/textView" />

        <TextView
            android:id="@+id/tv_fim"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="4dp"
            android:text="00/00/01"
            android:textSize="18sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="@+id/textView2"
            app:layout_constraintStart_toStartOf="@+id/textView2"
            app:layout_constraintTop_toBottomOf="@+id/textView2" />

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="16dp"
            android:layout_marginTop="2dp"
            android:text="Início"
            android:textColor="@color/green_500"
            android:textSize="20sp"
            app:layout_constraintStart_toEndOf="@+id/idLista"
            app:layout_constraintTop_toTopOf="parent" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="2dp"
            android:text="Fim"
            android:textColor="@color/green_500"
            android:textSize="20sp"
            app:layout_constraintEnd_toStartOf="@+id/textView3"
            app:layout_constraintStart_toEndOf="@+id/textView"
            app:layout_constraintTop_toTopOf="parent" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="2dp"
            android:layout_marginEnd="16dp"
            android:text="Status"
            android:textColor="@color/green_500"
            android:textSize="20sp"
            app:layout_constraintEnd_toStartOf="@+id/im_ver"
            app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Muito Obrigada!!!