【发布时间】:2016-11-09 17:41:54
【问题描述】:
我有一个回收器视图,我正在其中实现 OnClicklistener。基本上,我有一个名为 Actressadapter 的适配器类和一个 Viewholder 类 MyViewHolder。我在 Viewholder 类中实现 OnClickListener 以通过 Intent 方法启动另一个活动。我的基本数据在一个名为女演员的类中,该类具有三个变量 name、country(both String) 和一个 Id(UUID)。 我正在向我的适配器提供女演员的这些数据。下一个活动是只显示它检索到的女演员的名字,如 abc、def 等。问题是点击后只显示一位女演员的名字。例如,如果它显示 abc,那么每次点击它都会显示 abc。不知道为什么会这样,因为根据代码我将女演员名作为额外的传递。
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();
}
}
如果需要有关代码的任何进一步帮助,请发表评论。
【问题讨论】:
标签: android android-intent android-recyclerview onclicklistener