Android 改装:没有字段Id

Android 改装:没有字段Id,android,retrofit,Android,Retrofit,当我尝试得到Json结果时,我得到了我想要的所有字段,但没有id字段。我不明白,我给你json结果: [{"id":8671,"dateEvenement":"2017-08-14T16:49:34.404+02:00","type":"Competition","activitePlannings":[{"id":8675,"nomActivite":"Base-ball","idActivite":8654},{"id":8674,"nomActivite":"Balle de Hockey

当我尝试得到Json结果时,我得到了我想要的所有字段,但没有id字段。我不明白,我给你json结果:

[{"id":8671,"dateEvenement":"2017-08-14T16:49:34.404+02:00","type":"Competition","activitePlannings":[{"id":8675,"nomActivite":"Base-ball","idActivite":8654},{"id":8674,"nomActivite":"Balle de Hockey","idActivite":8653},{"id":8676,"nomActivite":"Course d'obstacles","idActivite":8655}],"groupe":{"id":8667,"nomGroupe":"Benjamin","groupeActivites":[{"id":8673,"nomGroupe":"Benjamin","idGroupe":8667,"nomActivite":"Balle de Hockey","idActivite":8653}]},"utilisateurPlannings":[{"id":8679,"nomUtilisateur":"Colart","prenomUtilisateur":"Pierre","type":"RESPONSABLE","datePlanning":"2017-08-14T16:49:34.404+02:00","idDisponibilite":0,"typePlanning":"Competition","nomGroupe":"Benjamin","planningId":8671,"utilisateurId":8651}],"Disponibilites":[],"validate":false}]
我有一门关于setter和getter的课程:

public class Planning {
    private int id;
    private String dateEvenement;
    private Groupe groupe;
    private String type;
    private List<ActivitePlanning> activitePlannings;
    private List<UtilisateurPlanning> utilisateurPlannings;
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");

    public Planning() {
    }


    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getDate() {
        return dateEvenement;
    }

    public void setDate(String date) {
        Date date2 = null;
        try {
            date2 = format.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
        this.dateEvenement  = sdf.format(date2.getTime());
    }

    public ejplanningandroid.ejplanningandroid.Models.Groupe getGroupe() {
        return groupe;
    }

    public void setGroupe(ejplanningandroid.ejplanningandroid.Models.Groupe groupe) {
        this.groupe = groupe;
    }

    public List<UtilisateurPlanning> getUtilisateurPlannings() {
        return utilisateurPlannings;
    }

    public void setUtilisateurPlannings(List<UtilisateurPlanning> utilisateurPlannings) {
        this.utilisateurPlannings = utilisateurPlannings;
    }

    public List<ActivitePlanning> getActivitePlannings() {
        return activitePlannings;
    }

    public void setActivitePlannings(List<ActivitePlanning> activitePlannings) {
        this.activitePlannings = activitePlannings;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
我的任务:

public class PlanningCandidatureTask extends AsyncTask<String,Void,List<Planning>> {
    @Override
    protected List<Planning> doInBackground(String... params) {
        try {
            InterfaceService interfaceService = new RestAdapter.Builder()
                    .setEndpoint(InterfaceService.path).build()
                    .create(InterfaceService.class);
            String login = params[0];
            String pass = params[1];
            List<Planning> PlanningList = interfaceService.getPlanningByValidation(login, pass);

            return PlanningList;
        }catch (RetrofitError retrofitError){
            return null;
        }
    }
}
公共类规划候选任务扩展异步任务{
@凌驾
受保护列表doInBackground(字符串…参数){
试一试{
InterfaceService InterfaceService=new RestAdapter.Builder()
.setEndpoint(InterfaceService.path).build()
.创建(InterfaceService.class);
字符串login=params[0];
字符串过程=参数[1];
List PlanningList=interfaceService.getPlanningByValidation(登录,通过);
返回计划表;
}捕捉(改型错误改型错误){
返回null;
}
}
}
但当我想查看是否有id时,该字段的值为0。我已尝试将类型更改为字符串,但它不起作用

编辑:

public class CandidatureFragment extends Fragment {
    private ListView mListView;
    private View view;
    private List<Planning> listPlanning = new ArrayList<Planning>();
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.candidature_fragment, container, false);
        mListView = (ListView) view.findViewById(R.id.listViewPlanning2);

        PlanningCandidatureTask planningTask =
                (PlanningCandidatureTask) new PlanningCandidatureTask()
                        .execute(((MainActivity) getActivity()).getUtilisateur().getLogin(),
                                ((MainActivity) getActivity()).getUtilisateur().getMotDepasse());
        try {
            if(planningTask.get() != null) {
                for (int i = 0; i < planningTask.get().size(); i++) {
                    Planning planning=new Planning();
                    Log.i("Test",planningTask.get().get(i).getGroupe()+"");
                    planning.setDate(planningTask.get().get(i).getDate());
                    planning.setType(planningTask.get().get(i).getType());
                    planning.setGroupe(planningTask.get().get(i).getGroupe());
                    planning.setActivitePlannings(planningTask.get().get(i).getActivitePlannings());
                    planning.setUtilisateurPlannings(planningTask.get().get(i).getUtilisateurPlannings());
                    listPlanning.add(planning);
                }
                PlanningAdapter adapter = new PlanningAdapter(view.getContext(),listPlanning);
                mListView.setAdapter(adapter);
            }else
            {
                Toast.makeText(view.getContext(), "ERREUR DE CONNECTION", Toast.LENGTH_SHORT).show();
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }
        final PlanningAdapter adapter = new PlanningAdapter(view.getContext(),listPlanning);
        mListView.setAdapter(adapter);
        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
            @Override
            public void onItemClick(final AdapterView<?> parent, final View view, final int position, long id) {
                AlertDialog.Builder builder = new AlertDialog.Builder(container.getContext());
                builder.setTitle("Validation");
                builder.setMessage("Voulez vous vraiment ajouter une candidature à ce planning ?")
                        .setCancelable(false).setPositiveButton("Oui", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Planning selectedFromList = (Planning) parent.getAdapter().getItem(position);

                        /*PostTask postTask =
                                (PostTask) new PostTask()
                                        .execute(((MainActivity) getActivity()).getUtilisateur().getLogin(),
                                                ((MainActivity) getActivity()).getUtilisateur().getMotDepasse(),
                                                "none","0");*/
                        dialog.cancel();
                        Toast.makeText(view.getContext(), "item selectionnné : "+selectedFromList.getId(), Toast.LENGTH_LONG).show();
                    }
                }).setNegativeButton("Non", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    }
                });
                builder.create().show();
            }

        });

        return view;
    }
公共类候选片段扩展片段{
私有列表视图;
私人视野;
private List listPlanning=new ArrayList();
@凌驾
创建视图上的公共视图(LayoutFlater充气机、@Nullable final ViewGroup容器、@Nullable Bundle savedInstanceState){
视图=充气机。充气(R.layout.Candidate_碎片,容器,假);
mListView=(ListView)view.findViewById(R.id.listViewPlanning2);
计划候选任务计划任务=
(PlanningCandidateTask)新建PlanningCandidateTask()
.execute(((MainActivity)getActivity()).getUsilisateur().getLogin(),
((MainActivity)getActivity()).getUsilizateur().getMotDepasse());
试一试{
if(planningTask.get()!=null){
对于(int i=0;i
获得改装::

@GET("/planning/unvalidate/")
List<Planning> getPlanningByValidation(@Query("login") String login, @Query("password") String password);

public class PlanningViewHolder {
    public TextView Date;
    public TextView NomGroupe;
    public TextView Type;
    public TextView NomActivite;
    public TextView Utilisateur;

}
@GET(“/planning/unvalidate/”)
列出getPlanningByValidation(@Query(“login”)字符串login、@Query(“password”)字符串password);
公共类规划视图持有者{
公共文本查看日期;
公共文本视图组;
公共文本视图类型;
公共文本视图无活动;
公共文本视图应用程序;
}

你到底想在哪里设置id字段?@M.WaqasPervez我需要它在alertDialog中,我不发布它,因为我知道在我记录日志时id没有保留。我在我的集合对象中设置的其余字段是否正确?我注意到你正在接受任何错误,这是一种不好的做法。@Nasch是的,所有其他字段都很好。我的错误在哪里?我不知道如果您是否收到错误,但就在这里,您应该记录错误,而不是忽略它:
catch(return null;}
您实际想要id字段在哪里?@M.WaqasPervez我需要它在alertDialog中,我不发布它,因为我知道在我记录日志时id没有保留。我的集合对象中的I其他字段设置是否正确?我注意到您
@GET("/planning/unvalidate/")
List<Planning> getPlanningByValidation(@Query("login") String login, @Query("password") String password);

public class PlanningViewHolder {
    public TextView Date;
    public TextView NomGroupe;
    public TextView Type;
    public TextView NomActivite;
    public TextView Utilisateur;

}