RecyclerView onClick Listener with firebase数据库,Parcelable Implementation

时间:2018-01-06 16:22:32

标签: android parcelable

我想使用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" ) );

**我的问题:**我的应用已停止我不知道是什么问题?错误在哪里?  我需要帮助。

1 个答案:

答案 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" ) );