我想使用Parcelable实现而不是Serializable实现: 这是我的班级:
public class Dentist implements Parcelable{
private String Nom;
private String Adresse;
protected Dentist(Parcel in) {
Nom = in.readString ( );
Adresse = in.readString ( );
}
public Dentist(String nom, String adresse) {
this.Nom = nom;
this.Adresse = adresse;
}
public static final Creator<Dentist> CREATOR = new Creator<Dentist> ( ) {
@Override
public Dentist createFromParcel(Parcel in) {
return new Dentist ( in );
}
@Override
public Dentist[] newArray(int size) {
return new Dentist[size];
}
};
public String getNom() {
return Nom;
}
public void setNom(String nom) {
Nom = nom;
}
public String getAdresse() {
return Adresse;
}
public void setAdresse(String adresse) {
Adresse = adresse;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString ( Nom );
dest.writeString ( Adresse );
}
}
我将对象从“Liste activity”发送到“DetailsPage activity”:
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View itemView) {
Intent intent = new Intent(itemView.getContext(), DetailsPage.class);
// get position
int pos = getAdapterPosition();
// check if item still exists
if(pos != RecyclerView.NO_POSITION){
Dentist clickedDataItem = listArray.get(pos);
intent.putExtra("nom",clickedDataItem.getNom ());
intent.putExtra("adresse",clickedDataItem.getAdresse ());
itemView.getContext().startActivity(intent);
Toast.makeText(itemView.getContext(), "You clicked " + clickedDataItem.getNom(), Toast.LENGTH_SHORT).show();
}
}
在“DetailsPage活动”中,我得到了对象:
DetailNom = (TextView)findViewById ( R.id.detail_nom );
DetailsAdresse = (TextView)findViewById ( R.id.detail_adresse );
DetailNom.setText ( "Nom :"+getIntent ().getParcelableExtra ( "nom" ) );
DetailsAdresse.setText ( "Adresse :"+getIntent ().getParcelableExtra ( "adresse" ) );
**我的问题:**我的应用已停止我不知道是什么问题?错误在哪里? 我需要帮助。
答案 0 :(得分:0)
尝试以下代码
DetailNom = (TextView)findViewById ( R.id.detail_nom );
DetailsAdresse = (TextView)findViewById ( R.id.detail_adresse );
DetailNom.setText ( "Nom :"+getIntent ().getStringExtra ( "nom" ) );
DetailsAdresse.setText ( "Adresse :"+getIntent ().getStringExtra ( "adresse" ) );