我知道我的代码有什么问题: 当我点击我的recyclerView中的一个项目时,它只向我显示两个textView,但图像永远不会显示。 我知道错误是图像是一个字符串,所以为了得到图像,我不能在第二个活动中使用方法“getIntExtra”。但我不知道我怎么能纠正这个。 我的数据存储在firebase数据库中。
这是我的班级模特:
public class Dentist implements Parcelable {
private String Nom;
private String Adresse;
private String Image;
protected Dentist(Parcel in) {
Nom = in.readString ( );
Adresse = in.readString ( );
Image = in.readString ( );
}
public Dentist(String nom, String adresse ,String image) {
this.Nom = nom;
this.Adresse = adresse;
this.Image = image;
}
public Dentist (){
}
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;
}
public String getImage() {
return Image ;
}
public void setImage(String image) {
Image= image;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString ( Nom );
dest.writeString ( Adresse );
dest.writeString ( Image );
}
}
这是第一项活动:
public MyViewHolder(View itemView) {
super ( itemView );
TextNom = (TextView)itemView.findViewById ( R.id.nom_dentist );
TextAdresse = (TextView)itemView.findViewById ( R.id.adresse_dentist );
Image=(ImageView)itemView.findViewById(R.id.image);
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 ());
intent.putExtra ( "image", clickedDataItem.getImage ());
itemView.getContext().startActivity(intent);
}
}
});
}
第二项活动:
DetailNom = (TextView)findViewById ( R.id.detail_nom );
DetailsAdresse = (TextView)findViewById ( R.id.detail_adresse );
imageView=(ImageView)findViewById ( R.id.detail_image);
DetailNom.setText ( "Nom :"+getIntent ().getStringExtra ( "nom" ) );
DetailsAdresse.setText ( "Adresse :"+getIntent ().getStringExtra ( "adresse" ) );
imageView.setImageResource ( getIntent ().getIntExtra ( "image", Integer.parseInt ( "00" ) ));
答案 0 :(得分:0)
试试这个
imageView.setImageURI(Uri.parse(getIntent ().getStringExtra ( "image","00")));
答案 1 :(得分:0)
试试这段代码:
int image = Integer.parseInt(getIntent().getStringExtra(“image”));
imageView.setImageResource(image);
答案 2 :(得分:0)
如果您的图片来源是资源ID,请使用int
类型的图片。
imageView.setImageResource ( getIntent ().getIntExtra ( "image", 0));
如果您的图片来源是网址字符串,请使用String
类型的图片。
imageView.setImageURI(Uri.parse(getIntent ().getStringExtra ( "image","00")));
答案 3 :(得分:0)
使用Picasso或滑动或其他库将图像加载到imageview中。
一个例子:
Picasso.with(context).load(getIntent ().getStringExtra ( "image")).into(imageView);