当复选框启用或禁用时,接收和发送事件的正确方式是什么。在C#中,我可以轻松地双击,所有的代码将为我完成。但在android中它似乎有点模糊。我想过使用触摸事件处理程序,但如果用户有键盘,它不会检测到变化,因为它不是触摸。我想android应该有一个本机事件来检查复选框状态的变化。如何在android复选框检查更改时接收事件?
37
A
回答
118
CheckBox repeatChkBx = (CheckBox) findViewById(R.id.repeat_checkbox);
repeatChkBx.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if (isChecked)
{
// perform logic
}
}
});
4
由于复选框(最终)扩展视图中,可以使用标准的OnClickListener以检测当复选框实际上是由用户轻敲(而不是到ListView更新):
CheckBox repeatChkBx = (CheckBox) findViewById(R.id.repeat_checkbox);
repeatChkBx.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (((CheckBox)v).isChecked()) {
// perform logic
}
}
});
0
试试这个
CheckBox checkbox=(CheckBox)findViewById(R.id.checkbox);
checkbox.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if (checkbox.isChecked())
{
//Perform action when you touch on checkbox and it change to selected state
}
else
{
//Perform action when you touch on checkbox and it change to unselected state
}
}
});
相关问题
- 1. 检查复选框的更改事件
- 2. 如何检查更改事件的复选框状态
- 3. 如何在c#中更改复选框值时在DataGridView中检查复选框?
- 4. 复选框“检查”事件
- 5. 如何在不触发更改事件的情况下检查复选框?
- 6. 我该如何检查Android的Listivew的ItemClickListener事件复选框?
- 7. 更改类以检查复选框JavaScript
- 8. 如何在ITextSharp中更改复选框的检查类型
- 9. 如何更改复选框webview android
- 10. 检查/取消选中父复选框,如果所有取消选中/检查与jQuery更改事件
- 11. ASP.NET MVC检测事件(点击,下拉更改,复选框检查)
- 12. LongListSelector与TextBlock和复选框 - 如何更改复选框的检查状态
- 13. 当检查框时,复选框值不会更改
- 14. wpf listbox复选框更改颜色时检查或选择
- 15. 如何在检查Android Activity中的复选框时显示EditText?
- 16. 如何在android中检查复选框时计算百分比?
- 17. CheckBox oncheckchanged事件 - 按钮在复选框检查时可见
- 18. 如何在android中的某些特定事件中检查所有复选框?
- 19. 如何检查复选框时显示复选框设置?
- 20. 浏览器检测 - 复选框更改事件
- 21. Angular如何在模型值更改后触发复选框的更改事件?
- 22. 改变事件的proccess之前jQuery的检查复选框做
- 23. 单选按钮更改事件后未复选复选框
- 24. 如何检查复选框状态是否已更改
- 25. 如何在更改事件时获取复选框的数据元素
- 26. 如何检查收音机或复选框是否被选中?
- 27. 当检查复选框时动态更改jQuery验证规则
- 28. 如何检查在android中是否没有选中复选框?
- 29. 复选框检查,未经检查的事件的jQuery
- 30. 使用javascript检查/选择收音机/复选框按钮“oncheck”事件
虽然这是正确的答案,我很好奇,什么是最好的办法时,该复选框是ListView项内部和onCheckedChange被调用每次用户滚动经过它的时间。任何方式来区分何时由用户和列表视图更新启动? – rmooney 2013-09-16 20:14:38
^@RMoney的这个评论是黄金!我有一个RecyclerView适配器的问题,每次滚动它都会疯狂地调用不止一次!谢谢! – 2016-10-01 21:40:04
在适配器中,当您为该特定持有者设置checkchange时。首先删除侦听器,更改值,然后读取侦听器。复选框本身强制调用监听器,因此您必须删除它才能设置值,而不触发它。 – Tatarize 2017-01-08 07:06:25