Skip to content Skip to sidebar Skip to footer

Data Is Not Getting Displayed In Retrofit

I using retrofit to display data but data is not getting displayed.i don't know where am I getting wrong.in logcat im getting response as: 2019-12-26 20:34:39.847 28305-28305/com.e

Solution 1:

Might be i got the problem. Problem is here @GET("/v1/android_tutorials/single_advance?") you have? in the end of your url and you also have @Query("advance_id") field that mean your request contain two ?. you request currently look like this.

/v1/android_tutorials/single_advance??advance_id="xxxx"

Remember when you add @Query("advance_id") to your request this by default add ? to your your. So remove? from your url end. Your url should look like this

 @GET("/v1/android_tutorials/single_advance")

Solution 2:

Try to remove / before v1 in your interface GET method and add that into your base url. In short in any method of retrofit interface don't start with /.


Solution 3:

Assuming data is there try making below changes

public class JavaGetAheadAdapter extends RecyclerView.Adapter<JavaGetAheadAdapter.CustomViewHolder> {

List<JavaDatum> GHmdel = new ArrayList(); //new change
Context context;

//removed the list from constructor
public JavaGetAheadAdapter(Context context) {
    this.GHmdel = employees;
}

//new method for updating the data items
public void updateData(List<JavaDatum> employees){
  this.GHmdel.addAll(employees);
  notifyDataSetChanged();
}

@Override
public CustomViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View itemView = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.getaheadnext_item, parent, false);

    return new CustomViewHolder(itemView);
}

@Override
public void onBindViewHolder(CustomViewHolder holder, int position) {
    holder.employeeName.setText(GHmdel.get(position).getFileName());//
    holder.textView.setText(GHmdel.get(position).getCode());
    Log.d("adapter",GHmdel.get(position).getFileName());
    Log.d("adapter2",GHmdel.get(position).getCode());

}

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

public class CustomViewHolder extends RecyclerView.ViewHolder {
    public TextView employeeName;
    TextView textView;

    public CustomViewHolder(View view) {
        super(view);
        employeeName = (TextView) view.findViewById(R.id.detailsgetaheadtitle);
       textView = view.findViewById(R.id.detailsgetahead);}}}

At the calling side just make the mentioned below changes.

 @Override
  public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        /*Create handle for the RetrofitInstance interface*/
        progressDialog = new ProgressDialog(getContext());
        progressDialog.setMessage("Loading....");
        progressDialog.show();
        Intent intent = getActivity().getIntent();

        String id = intent.getStringExtra("idGHnext");
        Log.e("ashwiniiii", String.valueOf(id));

        // new changes
        generateDataList(view);

        GetAheadApiService service = GetAheadApiClient.getRetrofitInstance().create(GetAheadApiService.class);
        Call<GetAHeadModelsnext> call = service.getaheadjava(id);
        call.enqueue(new Callback<GetAHeadModelsnext>() {
            @Override
            public void onResponse(Call<GetAHeadModelsnext> call, Response<GetAHeadModelsnext> response) {
                progressDialog.dismiss();

                List<JavaDatum> retro=response.body().getJavaData();
                //new changes
                adapter.updateData(retro);
                Log.e("helloash", String.valueOf(response.body().getJavaData()));
            }

            @Override
            public void onFailure(Call<GetAHeadModelsnext> call, Throwable t) {
                progressDialog.dismiss();

                Toast.makeText(getContext(), "Something went wrong...Please try later!", Toast.LENGTH_SHORT).show();
            }
        });
    }
    //new changes goes here
    private void generateDataList(View view) {
        recyclerView = view.findViewById(R.id.nextGHrecycle);
        LinearLayoutManager manager = new LinearLayoutManager(getContext());
        recyclerView.setLayoutManager(manager);
        recyclerView.setHasFixedSize(true);
        adapter = new JavaGetAheadAdapter(getContext());
        recyclerView.setAdapter(adapter);
    }}

Try and comment below if its working or not still.


Post a Comment for "Data Is Not Getting Displayed In Retrofit"