在Android中,我在同一个视图中有多个表单小部件,我希望它们相互影响。现在我有一个EditText字段,你可以输入一个整数,我希望在一系列ToggleButtons中显示该值(即EditText字段的二进制值显示为选定的按钮)。我希望两个字段相互影响,因此单击按钮可更改文本,更改文本会更改按钮。
现在我使用afterTextChanged()
方法来捕获更新的文本并更改按钮。我使用onCheckedChanged()
方法来捕获更新的按钮点击并更改文本。
它向两个方向发挥作用,但当它们都在那里时,它们互相调用,这可能导致不良行为。有没有办法改变字段的状态而不调用它的变更处理程序'或者是否有另一个处理程序可以更好地避免递归调用?
答案 0 :(得分:0)
使用EditText的setText()
方法设置用户更改切换按钮值时更改的值。
答案 1 :(得分:0)
对此的修复是使用状态变量来添加“信号量”。在事件处理程序中,我将检查处理程序是否从另一个处理程序调用,如果是,则不重新更新原始字段。