scorpionali2 Posté(e) 22 novembre 2012 Share Posté(e) 22 novembre 2012 bonjour, a travers un projet d'étude je dois réaliser un agenda sous android,je suis débutant encore avec android j'ai eu des difficultés à faire passer un objet d'une activité à une autre, je vais essaye d'expliquer un peu le contexte, je vais mettre mes classes afin que vous puissiez mieux comprendre.votre aide serai très apprécié surtout pour ce problème bloquant Merci d'avance! Dans mon projet agenda j'ai commence par la gestion de rendez vous: j'ai crée une classe RendezVous.java contenant les attributs des String Sujet,Type,HeurD,HeurF,Date ,puis une classe GestionRendezVous contenant un ArrayList<RendezVous>,la première activity me montre un formulaire pour remplir ts les attributs de mon objet RendezVous puis j'ajoute mon rendez-vous à mon arraylist pour afficher l'afficher dans listeView qui se trouve dans la deuxième activity.j'ai lu quelque tutoriaux sur internet qui m'ont conseillé d'implémenté Parcelable sur ma classe RendezVous et GestionRendezVous afin de pouvoir le passer entre les deux activity.Quand j'excute je trouve une erreur de nulpointerException sur mon objet listRv que je capte depuis ma deuxieme activite à l'aide Bundle b = getIntent().getExtras();listerv = b.getParcelable("list"); public class RendezVous implements Parcelable { /** * */ private static final long serialVersionUID = 1L; private String type; private String sujet; private String heuredebut; private String heurefin; private String date; public static Parcelable.Creator<RendezVous> CREATOR = new Creator<RendezVous>() { @Override public RendezVous[] newArray(int size) { return null; } @Override public RendezVous createFromParcel(Parcel source) { return new RendezVous(source); } }; public RendezVous(Parcel source) { this.getFromParcel(source); } public RendezVous() { type = new String(); type=""; sujet = new String(); sujet=""; heuredebut=""; heurefin=""; date = ""; } public RendezVous(String type, String sujet, String heuredebut, String heurefin, String date) { super(); this.type = type; this.sujet = sujet; this.heuredebut = heuredebut; this.heurefin = heurefin; this.date = date; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getSujet() { return sujet; } public void setSujet(String sujet) { this.sujet = sujet; } public String getHeuredebut() { return heuredebut; } public void setHeuredebut(String heuredebut) { this.heuredebut = heuredebut; } public String getHeurefin() { return heurefin; } public void setHeurefin(String heurefin) { this.heurefin = heurefin; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } @Override public String toString() { return "RendezVous [type= + type + ", sujet=" + sujet + ", heuredebut=" + heuredebut + ", heurefin=" + heurefin + ", date=" + date + ]"; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(this.type); dest.writeString(this.sujet); dest.writeString(this.heuredebut); dest.writeString(this.heurefin); dest.writeString(this.date); } public void getFromParcel(Parcel in) { this.setType(in.readString()); this.setSujet(in.readString()); this.setHeuredebut(in.readString()); this.setHeurefin(in.readString()); this.setDate(in.readString()); } } package com.example.entite; import java.io.Serializable; import java.util.ArrayList; import android.os.Parcel; import android.os.Parcelable; public class GestRendezVous implements Parcelable{ /** * */ private static final long serialVersionUID = 1L; private ArrayList<RendezVous> listrv; public static final Parcelable.Creator<GestRendezVous> CREATOR= new Creator<GestRendezVous>() { @Override public GestRendezVous[] newArray(int size) { return null; } @Override public GestRendezVous createFromParcel(Parcel source) { return new GestRendezVous(source); } }; public GestRendezVous(Parcel in) { this.getFromParcel(in); } private void getFromParcel(Parcel in) { this.listrv=null; int size = in.readInt(); for (int i = 0; i < size; i++) { RendezVous rv = new RendezVous(); rv.setType(in.readString()); rv.setSujet(in.readString()); rv.setHeuredebut(in.readString()); rv.setHeurefin(in.readString()); rv.setDate(in.readString()); this.addrv(rv); } } public GestRendezVous() { listrv=new ArrayList<RendezVous>(); } public GestRendezVous(ArrayList<RendezVous> listrv) { super(); this.listrv = listrv; } public void remplir(GestRendezVous g) { for (int i = 0; i < g.size(); i++) { this.listrv.add(g.getListrv().get(i)); } } public RendezVous getRv(int index) { return this.listrv.get(index); } public ArrayList<RendezVous> getListrv() { return listrv; } public void setListrv(ArrayList<RendezVous> listrv) { this.listrv = listrv; } @Override public String toString() { return "GestRendezVous [listrv= + listrv + ]"; } public void addrv(RendezVous v) { this.listrv.add(v); } public void deleterv(RendezVous v) { this.listrv.remove(v); } public int size() { return this.listrv.size(); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { int size=this.size(); dest.writeInt(size); for (int i = 0; i < size; i++) { RendezVous rv= this.getRv(i); dest.writeString(rv.getType()); dest.writeString(rv.getSujet()); dest.writeString(rv.getHeuredebut()); dest.writeString(rv.getHeurefin()); dest.writeString(rv.getDate()); } } } package com.example.projetihm; import java.util.ArrayList; import com.example.entite.GestRendezVous; import com.example.entite.RendezVous; import android.os.Bundle; import android.os.Parcelable; import android.provider.SyncStateContract.Constants; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; public class MainActivity extends Activity { private Button save; private String type,sujet,heurD,heurF; private RadioGroup rg; private RadioButton rb; private String date; private EditText tsujet; private EditText theurD; private EditText theurF; private EditText d; private RendezVous rv; private GestRendezVous listRv; public MainActivity() { } @Override protected void onCreate(Bundle savedInstanceState) { listRv= new GestRendezVous(); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); save= (Button)findViewById(R.id.button1); rg=(RadioGroup)findViewById(R.id.radioGroup1); rb=(RadioButton)findViewById(rg.getCheckedRadioButtonId()); type=(String)rb.getText(); tsujet=(EditText)findViewById(R.id.editText1); theurD=(EditText)findViewById(R.id.editText2); theurF=(EditText)findViewById(R.id.editText3); d=(EditText)findViewById(R.id.editText4); sujet=(String)tsujet.toString(); heurD=(String)theurD.toString(); heurF=(String)theurF.toString(); date=(String)d.toString(); save.setonclickListener(new View.onclickListener() { @Override public void onclick(View v) { rv = new RendezVous(type, sujet,heurD,heurF, date); listRv.addrv(rv); //System.out.println(listRv.toString()); Intent intent = new Intent(MainActivity.this, ListRv.class); intent.putExtra("list", (Parcelable)listRv); startActivity(intent); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } public GestRendezVous getListRv() { return listRv; } } public class ListRv extends Activity { MainActivity m; private ListView listview; private GestRendezVous listerv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); Bundle b = getIntent().getExtras(); try { listerv = b.getParcelable("list"); } catch (ParcelFormatException e) { e.getCause(); } lvRefresh(); } private void lvRefresh() { listview = (ListView)findViewById(R.id.listView1); // System.out.println(m.getListRv().toString()); ListAdapter logAdapter = new ListAdapter(listerv); listview.setAdapter(logAdapter); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } } Lien vers le commentaire Partager sur d’autres sites More sharing options...
CastleRoad Posté(e) 22 novembre 2012 Share Posté(e) 22 novembre 2012 Bonjour et bienvenue sur Frandroid, Je vais te demander de créer ton sujet à nouveau mais dans notre catégorie "Developpement" https://forum.frandroid.com/forum/7-developpement/ Merci :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.