我有一个回收站视图,我正在其中实施OnClicklistener。基本上,我有一个名为actressadapter的适配器类和一个ViewView类MyViewHolder.I,我正在Viewholder类中实现OnClickListener以通过intent方法启动另一个活动。我的基本数据是在一个名为女演员的类中,它有三个变量姓名,国家(都是字符串)和一个Id(UUID)。我将这些数据提供给我的适配器上的女演员。下一个活动仅显示女演员的名称,如abc,def等。错误是它在点击后显示只有一个女演员的名字。例如,如果它显示abc,那么对于每次点击它都会显示abc。不知道为什么会发生这种情况,因为根据代码,我将actressname作为额外值传递。RecyclerView OnItemclick无法正常工作
public class actressadapter extends RecyclerView.Adapter <actressadapter.MyViewHolder> {
private List<Actress>al;
private Actress actress,mActress;
public static final String str="shivam.panwar.actressdetails.actressadapter.str";
public class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public TextView naam, desh;
public MyViewHolder(View view) {
super(view);
view.setOnClickListener(this);
naam = (TextView) view.findViewById(R.id.name);
desh= (TextView) view.findViewById(R.id.country);
}
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(),"Clicked",Toast.LENGTH_SHORT).show();
Intent intent=new Intent(v.getContext(),Actressview.class);
intent.putExtra(str,actress.getName());
v.getContext().startActivity(intent);
}
public void bindactress(Actress mActress) {
naam.setText(mActress.getName());
desh.setText(mActress.getCountry());
}
}
public actressadapter(List<Actress> al) {
this.al = al;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.actress_list_row, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
actress =al.get(position);
holder.bindactress(actress);
}
@Override
public int getItemCount() {
return al.size();
}
}
如果需要提供进一步的帮助有关代码,请发表评论。
可以通过声明变量'actress'本地最终使用和整个方法中相同的变量,而不是查询gettext和转换为字符串等 –