翻新,无法通过我的api在recyclerview上显示我的数据

时间:2018-12-12 03:53:11

标签: android retrofit2

我是一个新手,我在recyclerview中遇到问题。我无法从api中获取数据。香港专业教育学院只是采取了本教程,因为它是与我的应用程序相同的实现。 http://shaoniiuc.com/android/fetch-json-api-data-recyclerview-using-retrofit-library/,也许我的实现在这里是错误的,请您帮我解决,谢谢:)

这是我的api:

  public interface Api {

          @GET("api/Database/GetSchedule?serialNumber=1807200003")
          Call<List<ScheduleDetails>> getSchedData();
 }

我的DetailObjects:

   public class ScheduleDetails {


                  private String ID;
                  private String Location;
                  private String Latitude;
                  private String Longitude;
                  private String SequenceNumber;
                  private String Comment;
                  private String hasArrived;
                  private String ActualArrival;
                  private String hasDepart;
                  private String ActualDeparture;
                  private String Status;
                  private String ID_FleetSchedule;
                  private String ExpectedTimeOfTransaction;
                  private String EstimatedTimeOfDeparture;
                  private String ID_FleetCar;
                  private String Scheduler;
                  private String Car;
                  private String ID_FleetCompany;
                  private String FleetCompany;
                  private String ID_FleetDevice;
                  private String SerialNumber;

             //Constructor....
            //Getter.....
       }


note: in my api, these are the string ive get but
      ive only getting least of them...  you can check 
      it on my adapterView.

我的适配器视图:

     public class scheduleAdapter extends 
     RecyclerView.Adapter<scheduleAdapter.MyViewHolder> {

     private List<ScheduleDetails> schedlist;

     public class MyViewHolder extends RecyclerView.ViewHolder {
          public TextView location,schedule_status,dateTime,IDFleet,iid;

    public MyViewHolder(View view) {
        super(view);
        location=view.findViewById(R.id.schedule_location);
        dateTime=view.findViewById(R.id.schedule_dateTime);
        schedule_status=view.findViewById(R.id.schedule_Status);
        IDFleet=view.findViewById(R.id.schedule_FleetID);
        iid=view.findViewById(R.id.schedule_ID);

       }
       }


       public scheduleAdapter(List<ScheduleDetails> scheduleList) {
       this.schedlist = scheduleList;
      }

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

            return new MyViewHolder(itemView);
      }

       @Override
             public void onBindViewHolder(MyViewHolder holder, int
              position) {
             ScheduleDetails sched = schedlist.get(position);
             holder.location.setText(sched.getLocation());
             holder.schedule_status.setText(sched.getStatus());
             holder.dateTime.setText(sched.getExpectedTimeOfTransaction());
             holder.IDFleet.setText(sched.getID_FleetSchedule());
             holder.iid.setText(sched.getID());

           }

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

这是我的API:

    public class ApiClient {

private static final String BASE_URL = "http://www.example.com";
private static Retrofit retrofit = null;

public static Retrofit getRetrofit() {
    if (retrofit == null) {
        retrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }
    return retrofit;
   }

}

这是我主要活动上通过recyclerview获得的getList:

        public class ScheduleFleet extends Fragment  {

View inflatedView = null;

private RecyclerView recyclerView;
private scheduleAdapter mAdapter;
private LinearLayoutManager layoutManager;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    inflatedView = inflater.inflate(R.layout.fragment_schedule_fleet, container, false);

    return inflatedView;

}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    getActivity().setTitle("Schedule");
    final SwipeRefreshLayout refresh = inflatedView.findViewById(R.id.sched_refresh);
    getUserList();

    refresh.setOnRefreshListener(
            new SwipeRefreshLayout.OnRefreshListener() {
                @Override
                public void onRefresh() {
                    doYourUpdate();
                }

                private void doYourUpdate() {
                    recyclerView.setAdapter(mAdapter);
                    getUserList();
                    refresh.setRefreshing(false);
                }
            }
    );
}

private void getUserList() {
    try {
        Api service = ApiClient.getRetrofit().create(Api.class);
        Call<List<ScheduleDetails>> call = service.getSchedData();

        call.enqueue(new Callback<List<ScheduleDetails>>() {
            @Override
            public void onResponse(Call<List<ScheduleDetails>> call, Response<List<ScheduleDetails>> response) {
                List<ScheduleDetails> userList = response.body();
                layoutManager = new LinearLayoutManager(getContext());

                RecyclerView recyclerView =inflatedView.
                        findViewById(R.id.scheduleRecycler);
                recyclerView.setLayoutManager(layoutManager);

                scheduleAdapter recyclerViewAdapter =
                        new scheduleAdapter(userList);

                recyclerView.setAdapter(recyclerViewAdapter);

            }

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

            }

        });
    }catch (Exception e) {}
}

}

  note: ive try to use the debug tool.. it says that my api is message:OK also the response= true... but i havnt display the data on my recyclerview...

希望,您了解我的问题。.如果我对我的问题有错,请随时发表评论。.

这是我使用失眠的示例api:

enter image description here

0 个答案:

没有答案