Tus*_*har 6 android onclicklistener android-recyclerview
我正在使用recyclerview,下面给出的相同代码对我来说工作正常,但我尝试了以下代码,但它无法正常工作
recyclerView = (RecyclerView)v.findViewById(R.id.datelist);
recyclerView.setClickable(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
recyclerView.setAdapter(adapter);
adapter.setOnItemClickListener(this);
Run Code Online (Sandbox Code Playgroud)
在适配器中
public class UpdateHolder extends RecyclerView.ViewHolder
implements View
.OnClickListener,CompoundButton.OnCheckedChangeListener {
TextView uname;
TextView uversn;
TextView usitting;
public UpdateHolder(View itemView) {
super(itemView);
uname = (TextView) itemView.findViewById(R.id.update_name);
uversn = (TextView) itemView.findViewById(R.id.update_version);
usitting=(TextView) itemView.findViewById(R.id.sitting_type);
Log.i(LOG_TAG, "Adding Listener");
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
myClickListener.onItemClick(getPosition(), v);
}
}
public void setOnItemClickListener(MyClickListener myClickListener) {
this.myClickListener = myClickListener;
}
Run Code Online (Sandbox Code Playgroud)
我也在onCreateViewHolder中试过了in Adapter
请帮帮我
Neu*_*ino 13
对我来说,解决方案是从CardViewxml文件中删除下面的内容.
android:clickable="true"
Run Code Online (Sandbox Code Playgroud)
显然,此属性会覆盖添加到视图中的任何clickListeners.
在recyclerView中,您必须像下面的代码一样创建viewHolder,您必须在viewHolder视图上设置点击侦听器,如下所示。
public static class ViewHolder extends RecyclerView.ViewHolder {
private final TextView textView;
private final MyEditText edtTest;
public ViewHolder(View v) {
super(v);
// Define click listener for the ViewHolder's View.
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "Element " + getPosition() + " clicked.");
}
});
v.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Log.e("Demo", "Long click done bro--------------------->");
return false;
}
});
textView = (TextView) v.findViewById(R.id.textView);
edtTest = (MyEditText) v.findViewById(R.id.edtTest);
}
public TextView getTextView() {
return textView;
}
public EditText getEdtTest() {
return edtTest;
}
}
Run Code Online (Sandbox Code Playgroud)