【发布时间】:2017-04-26 20:02:36
【问题描述】:
我有一个简单的问题,我不能在 recyclerview 上设置 onClickListener ,我不想在 recyclerview 的项目上设置 onClickListener ,只是 recyclerview 本身,我尝试了普通的方法,它没有工作
(我试图在父布局上设置一个 onClickListener,但奇怪的是它不起作用,因为我在 recyclerview 上设置了 LinearLayoutManager :|)
这是我的代码:
mRecyclerView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("onClick","Clicked");
}
});
适配器:
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ViewHolder> {
private List<Message> mMessage;
public static class ViewHolder extends RecyclerView.ViewHolder{
private TextView txtSender;
private TextView txtMessage;
public ViewHolder(View v) {
super(v);
txtSender = (TextView) v.findViewById(R.id.txtSender);
txtMessage = (TextView) v.findViewById(R.id.txtText);
}
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View inflatedView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.recyclerview_item_row, parent, false);
return new ViewHolder(inflatedView);
}
public RecyclerAdapter(List<Message> messages) {
mMessage = messages;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Message msg = mMessage.get(position);
holder.txtSender.setText(msg.getSender());
holder.txtMessage.setText(msg.getmessage());
}
@Override
public int getItemCount() {
return mMessage.size();
}
【问题讨论】:
-
发布您的适配器代码...
-
您是否尝试过将其嵌入 FrameLayout 并在 FrameLayout 上设置监听器?
-
好吧,这段代码应该可以工作,但这样做似乎很奇怪,因为行视图仍然会消耗触摸事件。
-
@rafsanahmad007 你在这里
-
@ifiok 它不起作用:(
标签: java android android-recyclerview onclicklistener