当复选框启用或禁用时,接收和发送事件的正确方式是什么。在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. kendo treeview复选框 - 父节点检查 - 每个复选框更改事件
- 7. 如何在android中更新时检查复选框?
- 8. 如何在不触发更改事件的情况下检查复选框?
- 9. 我该如何检查Android的Listivew的ItemClickListener事件复选框?
- 10. 复选框事件只在检查,而不是在复选框
- 11. 如何检查复选框时触发数据网格事件?
- 12. 更改视图检查后复选框
- 13. 更改当用户检查复选框
- 14. 更改类以检查复选框JavaScript
- 15. 如何在ITextSharp中更改复选框的检查类型
- 16. JsTree复选框 - 检查事件
- 17. 取消复选框检查事件
- 18. GridView中的复选框检查事件
- 19. 如何更改复选框webview android
- 20. 如何更改Android复选框样式
- 21. Knockoutjs复选框更改事件
- 22. jquery复选框更改事件
- 23. 检查/取消选中父复选框,如果所有取消选中/检查与jQuery更改事件
- 24. LongListSelector与TextBlock和复选框 - 如何更改复选框的检查状态
- 25. ASP.NET MVC检测事件(点击,下拉更改,复选框检查)
- 26. 当检查框时,复选框值不会更改
- 27. wpf listbox复选框更改颜色时检查或选择
- 28. 如何在android中检查复选框时计算百分比?
- 29. 如何在检查Android Activity中的复选框时显示EditText?
- 30. 在Angular2中检查复选框时启动一个事件
虽然这是正确的答案,我很好奇,什么是最好的办法时,该复选框是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