Android RecyclerView onClick可在每个位置上单击不同的活动
我是一个新手,想问一个关于onClick RecyclerView的问题 我从中找到了这个脚本http://wimsonevel.blogspot.co.id/2016/03/tutorial-android-recyclerview-and.html 我已通过以下代码成功创建了另一项活动的意图:Android RecyclerView onClick可在每个位置上单击不同的活动,android,android-recyclerview,onclick,Android,Android Recyclerview,Onclick,我是一个新手,想问一个关于onClick RecyclerView的问题 我从中找到了这个脚本http://wimsonevel.blogspot.co.id/2016/03/tutorial-android-recyclerview-and.html 我已通过以下代码成功创建了另一项活动的意图: @Override public void onBindViewHolder(MemberViewHolder holder, int position) { final M
@Override
public void onBindViewHolder(MemberViewHolder holder, int position) {
final Member member = memberList.get(position);
holder.memberThumb.setImageResource(member.getThumb());
holder.memberName.setText(member.getName());
holder.memberTeam.setText(member.getTeam());
holder.memberCard.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent go;
go = new Intent(view.getContext(),Main2Activity.class);
view.getContext().startActivity(go);
}
});
}
但我想为每个CardView位置添加意图。如果位置为0,则转到Main0活动;如果位置为1,则转到Main1活动,以此类推
我的代码不起作用:
@Override
public void onBindViewHolder(MemberViewHolder holder, int position) {
final Member member = memberList.get(position);
holder.memberThumb.setImageResource(member.getThumb());
holder.memberName.setText(member.getName());
holder.memberTeam.setText(member.getTeam());
holder.memberCard.setOnClickListener(new View.OnClickListener() {
@Override
public void onItemClick(View<?> parent, View view, int position, long id) {
Intent go;
if (position==0){
go = new Intent(view.getContext(),Main0Activity.class);
view.getContext().startActivity(go);
}
else if (position==1){
go = new Intent(view.getContext(),Main1Activity.class);
view.getContext().startActivity(go);
}
else if (position==2){
go = new Intent(view.getContext(),Main2Activity.class);
view.getContext().startActivity(go);
}
else if (position==3){
go = new Intent(view.getContext(),Main3Activity.class);
view.getContext().startActivity(go);
}
else if (position==4){
go = new Intent(view.getContext(),Main4Activity.class);
view.getContext().startActivity(go);
}
}
});
}
错误:
Error:(74, 73) error: <anonymous com.example.wim.androidrecyclerview.adapter.MemberListAdapter$1> is not abstract and does not override abstract method onClick(View) in OnClickListener
Error:(76, 13) error: method does not override or implement a method from a supertype
如何解决这个问题
谢谢
对不起,我英语不好
完整代码:https://gist.github.com/anonymous/e15b222bfc20ba21eaf5c2c8d566166b重写onClick方法。
试试这个
@Override
public void onBindViewHolder(MemberViewHolder holder, final int position) {
final Member member = memberList.get(position);
holder.memberThumb.setImageResource(member.getThumb());
holder.memberName.setText(member.getName());
holder.memberTeam.setText(member.getTeam());
holder.memberCard.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent go;
if (position==0){
go = new Intent(view.getContext(),Main0Activity.class);
view.getContext().startActivity(go);
}
else if (position==1){
go = new Intent(view.getContext(),Main1Activity.class);
view.getContext().startActivity(go);
}
else if (position==2){
go = new Intent(view.getContext(),Main2Activity.class);
view.getContext().startActivity(go);
}
else if (position==3){
go = new Intent(view.getContext(),Main3Activity.class);
view.getContext().startActivity(go);
}
else if (position==4){
go = new Intent(view.getContext(),Main4Activity.class);
view.getContext().startActivity(go);
}
}
});
}
尝试在itemview上添加类似holder.itemview.setOnClickListener的单击侦听器 您应该像第一个示例中那样重写onClick。如果您需要BindViewHolder上的位置,请向您提供: BINDVIEWHOLDERMEMBERVIEWORLDER支架上的公共无效,内部位置{ }
是的,它已经出现在你得到的错误上了?我用errorDo not Override onItemClick方法更新了这个问题。检查我的答案。
@Override
public void onBindViewHolder(MemberViewHolder holder, int position) {
final Member member = memberList.get(position);
holder.memberThumb.setImageResource(member.getThumb());
holder.memberName.setText(member.getName());
holder.memberTeam.setText(member.getTeam());
holder.itemview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent go;
if (position==0){
go = new Intent(view.getContext(),Main0Activity.class);
view.getContext().startActivity(go);
}
else if (position==1){
go = new Intent(view.getContext(),Main1Activity.class);
view.getContext().startActivity(go);
}
else if (position==2){
go = new Intent(view.getContext(),Main2Activity.class);
view.getContext().startActivity(go);
}
else if (position==3){
go = new Intent(view.getContext(),Main3Activity.class);
view.getContext().startActivity(go);
}
else if (position==4){
go = new Intent(view.getContext(),Main4Activity.class);
view.getContext().startActivity(go);
}
}
});
}