0
ペットの品種に応じて異なる画像が表示される、私のdb内のすべての登録ペットを表示するrecyclerviewを作成しました。imageViewの画像をrecyclerview内の異なるアイテムの位置に設定する方法
私の問題は、データベースにペットを登録するたびに、同じ画像が登録されたすべてのペットに表示されることです。
私がしたことは、自分のデータベースにあるペットの品種を取得し、それをそれぞれの品種の差別化のために作った文字列と比較することです。
誰にでもこれを正しい方法で実行する方法を教えてください。
は、ここに私のrecyclerview
public class db_adapter extends RecyclerView.Adapter<pet_viewholder>
{
Context data_context;
ArrayList<db_getItem> items;
public db_adapter(Context data_context, ArrayList<db_getItem> items) {
this.data_context=data_context;
this.items=items;
}
@Override
public pet_viewholder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.reg_view_pet, parent, false);
return new pet_viewholder(view, data_context, items);
}
public void add(db_getItem pet) {
items.add(0, pet);
notifyItemInserted(0);
}
@Override
public int getItemViewType(int position) {
return super.getItemViewType(position);
}
@Override
public void onBindViewHolder(pet_viewholder holder, int position) {
holder.pet_name.setText(items.get(position).getPet_name());
holder.pet_breed.setText(items.get(position).getPet_breed());
holder.pet_age.setText(items.get(position).getPet_age());
holder.pet_bday.setText(items.get(position).getPet_bday());
holder.position=position;
}
@Override
public int getItemCount() {
return items.size();
}
}
ための私のコードであり、ここでのペットの画像を表示するための私のViewholderためのコードです。
public class pet_viewholder extends RecyclerView.ViewHolder {
TextView pet_name;
TextView pet_breed;
TextView pet_age;
TextView pet_bday;
ImageView pet_image;
RecyclerView recyclerView;
ArrayList<db_getItem> arrayList;
db_adapter adapter;
Context data_context1;
pet_database pet_database;
Cursor c;
public pet_viewholder(final View itemView, final Context data_context1, ArrayList<db_getItem> arrayList) {
super(itemView);
this.data_context1=data_context1;
this.arrayList=arrayList;
pet_name=(TextView)itemView.findViewById(R.id.name_pet);
pet_breed=(TextView)itemView.findViewById(R.id.breed_pet);
pet_age=(TextView)itemView.findViewById(R.id.age_pet);
pet_bday=(TextView)itemView.findViewById(R.id.bday_pet);
pet_image=(ImageView) itemView.findViewById(R.id.pic_breed);
recyclerView=(RecyclerView)itemView.findViewById(R.id.reg_pet);
pet_database = new pet_database(data_context1);
c=pet_database.quearyData("select * from pet_registered");
if (c.moveToFirst()) {
do {
String pos=c.getString(3);
String beagle="Beagle";
String bulldog="Bull Dog";
if(beagle.equals(pos)){
pet_image.setImageResource(R.drawable.beagle);
}
else if(bulldog.equals(pos)){
pet_image.setImageResource(R.drawable.bulldog);
}
} while (c.moveToNext());
}
}
}