Aller au contenu

passage d'un objet d'une activity à une autre


Recommended Posts

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...