Привет, я попытался сделать onclick в моем просмотре recycler, прежде чем реализовать onclick в моем моем первоначальном проекте, я создал фиктивный проект для тестирования просмотра recycler и его часы. Мой фиктивный проект работает отлично, я могу щелкнуть представление recycler, а затем может отобразить детали в другом действии. Но я использовал тот же код в своем первоначальном проекте, но я попытался щелкнуть элементы на ресайклере view, there response no response. И я заметил ошибку в моем оригинальном проекте log cat:/RecyclerView: адаптер не прилагается; пропуск макет Мой манекен код проектаПривет, я попытался реализовать действие onclick в моем recyclerview, но его не работает
public class RVAdapter
extendsRecyclerView.Adapter<RVAdapter.PersonViewHolder> { public
List<Person> persons= Collections.emptyList(); // private
Context mContext; private LayoutInflater inflater;
ImageLoader mImageLoader = AppController.getInstance().getImageLoader();
private static Context context;
public RVAdapter(Context context, List<Person> persons) {
this.persons = persons;
this.context = context;
inflater = LayoutInflater.from(context);
}
@Override
public PersonViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview,
parent, false);
PersonViewHolder pvh = new PersonViewHolder(v);
return pvh;
}
@Override
public void onBindViewHolder(PersonViewHolder holder, int postions) {
Person person = persons.get(postions);
holder.phoneName.setText(person.getKitchen_accesries());
holder.phonePrice.setText(person.getKitchen_price());
holder.itemView.setTag(person);
if (mImageLoader == null)
mImageLoader = AppController.getInstance().getImageLoader();
holder.thumbnail.setImageUrl(person.getThumbnail(), mImageLoader);
}
@Override
public int getItemCount() {
if (persons != null) {
return persons.size();
}
return 0;
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}
public static class PersonViewHolder extends RecyclerView .ViewHolder
implements View
.OnClickListener {
CardView cv;
TextView phoneName;
TextView phonePrice;
public List<Person> persons;
NetworkImageView thumbnail;
PersonViewHolder(View itemView) {
super(itemView);
cv = (CardView) itemView.findViewById(R.id.card_view);
phoneName = (TextView) itemView.findViewById(R.id.phone_name);
phonePrice = (TextView) itemView.findViewById(R.id.phone_price);
thumbnail = (NetworkImageView) itemView.findViewById(R.id.thumbnail);
itemView.setOnClickListener(this); //
}
@Override
public void onClick(View view) {
Intent intent = new Intent(context,ViewActivity.class);
Person person =(Person)view.getTag();
String strUrl= person.getThumbnail();
String product_name=person.getKitchen_accesries();
String product_price=person.getKitchen_price();
intent.putExtra("TV",product_name);
intent.putExtra("Price",product_price);
intent.putExtra("Image",strUrl);
context.startActivity(intent);
}
}
}
Мой Оригинальный код проекта:
public class Mobile_recycle_Adapter extends RecyclerView.
Adapter <Mobile_recycle_Adapter.PersonViewHolder> {
List<Details> mobile_details= Collections.emptyList();
private LayoutInflater inflater;
private static Context context;
ImageLoader mImageLoader = AppController.getInstance().getImageLoader();
public Mobile_recycle_Adapter(Context context,List<Details>
mobile_details) {
this.mobile_details = mobile_details;
this.context = context;
inflater = LayoutInflater.from(context);
}
@Override
public PersonViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview,
parent, false);
PersonViewHolder pvh = new PersonViewHolder(v);
return pvh;
}
@Override
public void onBindViewHolder(PersonViewHolder holder, int i) {
Details mob_details=mobile_details.get(i);
holder.phoneName.setText(mob_details.getPhone_name());
holder.phonePrice.setText(mob_details.getPhone_price());
//
if (mImageLoader == null)
mImageLoader = AppController.getInstance().getImageLoader();
holder.thumbnail.setImageUrl(mob_details.getPhone_image(), mImageLoader);
}
@Override
public int getItemCount() {
if (mobile_details != null) {
return mobile_details.size();
}
return 0;
}
public static class PersonViewHolder extends RecyclerView.ViewHolder implements View
.OnClickListener{
CardView cv;
TextView phoneName;
TextView phonePrice;
NetworkImageView thumbnail;
PersonViewHolder(View itemView) {
super(itemView);
cv = (CardView) itemView.findViewById(R.id.card_view);
phoneName = (TextView) itemView.findViewById(R.id.phone_name);
phonePrice = (TextView) itemView.findViewById(R.id.phone_price);
thumbnail=(NetworkImageView) itemView.findViewById(R.id.thumbnail);
}
@Override
public void onClick(View view) {
Intent intent = new Intent(context,Details_view.class);
Details person =(Details)view.getTag();
String strUrl= person.getPhone_image();
String product_name=person.getPhone_name();
String product_price=person.getPhone_price();
intent.putExtra("Phone",product_name);
intent.putExtra("Price",product_price);
intent.putExtra("Image",strUrl);
context.startActivity(intent);
}
}
привет Harshad у вас есть какое-либо решение для моего pblm? – swaroop
change itemView.setOnClickListener (this); в коде ur для cv.setOnClickListener (это); и в OnClick метода сделать проверку ..... @Override общественного недействительным OnClick (View v) {// TODO Автоматически сгенерированный метод заглушки если (v == резюме) { // делать то, что и хочет здесь }} – Mahalakshmi
Позвольте мне попробовать и поймать u – swaroop