Android 改装:没有字段Id
当我尝试得到Json结果时,我得到了我想要的所有字段,但没有id字段。我不明白,我给你json结果: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
[{"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;
}