java - OnClick 多次触发
问题描述
我有这个方法:
public void questions_makealist() {
qAdapter = new QandARecyclerViewAdapter(qandas);
qanda_View.addOnItemTouchListener(new RecyclerTouchListener(getApplicationContext(), qanda_View, new ClickListener() { // en as ons op n boksie druk
@Override
public void onClick(View view, int position) {
Log.e("Heeeeeeeeeeeeeeeeeeeee","On Clicked");
QandA c_qanda = qandas.get(position);
flip_it.setDisplayedChild(6);
reply_View = findViewById(R.id.replies);
TextView Question_Q = findViewById(R.id.QuestionC);
TextView Question_A = findViewById(R.id.asked_byC);
Question_Q.setText(c_qanda.getQuestion());
Question_A.setText(c_qanda.getABN());
QID_Reply = c_qanda.getQID();
maak_die_lys_vir_replies();
}
public void onLongClick(View view,int position) {}
//moet dit hier sit vir die method
}));
RecyclerView.LayoutManager qLayoutManager = new LinearLayoutManager(getApplicationContext());
qanda_View.setLayoutManager(qLayoutManager);
qanda_View.setAdapter(qAdapter);
//net vir testing purposes
//add_item("Ds.Hennie", "40 Dae Reeks: Herstel", 1, 1, "6 Maart 2017");
qandas.clear();
qAdapter.notifyDataSetChanged();
getQuestions getq = new getQuestions();
getq.execute();
}
由于某种原因,点击会触发我已经点击它的次数。例如,如果这是第三次点击,它实际上会在点击 3 次时调用它。
请参阅下面我设置的错误日志。
06-06 17:56:32.584 24779-24779/ng.Wilgespruit.com E/Heeeeeeeeeeeeeeeeeeeee: On Clicked
06-06 17:56:32.592 24779-24779/ng.Wilgespruit.com E/Heeeeeeeeeeeeeeeeeeeee: On Clicked
06-06 17:56:32.593 24779-24779/ng.Wilgespruit.com E/Heeeeeeeeeeeeeeeeeeeee: On Clicked
请帮忙
解决方案
发生这种情况是因为onTouchListener()
在触摸视图时触发多次,而onClickListener()
在单击时仅触发一次。
如果您想为onClickListener()
RecyclerView 中的每个项目添加一个,您可以在适配器类中执行此操作。在适配器类中有两种方法可以做到这一点。
- 将 onClickListener 设置
onBindViewHolder()
为holder.itemView.setOnCLickListener()
- 将其设置在适配器内部的 ViewHolder 类中。
设置 onClickListener 后,您还可以使用接口将事件从适配器传递回活动。
推荐阅读
- windows-subsystem-for-linux - 无法在 WSL 中使用任何 Windows 驱动器
- asynchronous - websocket 意外关闭
- typescript - 如何根据事件名称缩小回调事件类型
- c# - 用 \n 替换特殊字符,但将文本保持在同一“列”中
- azure - 尝试将托管标识与 Azure 服务总线一起使用
- pdf - Tesseract:线检测太敏感
- html - 容器边框和子元素背景之间的小间隙(CHROME)
- python - 从 python 中的数据帧导出到 MS 访问时的编码问题
- python - 在python中,我们如何执行条件操作列表,其中列表的项目或元素是关键字
- python-3.x - 绘制修改悬停模式数据