我有一个带有一堆收音机组,复选框和文本字段的表格。我试图找出每次这些输入中的任何一个更改时都调用方法的方法(即选中单选按钮,选中复选框,更改文本字段)。事件侦听器不需要知道更改了什么输入。
我应该如何去做?我已经尝试过将事件侦听器添加到布局中,但这是行不通的,因为仅当用户点击背景时才调用事件侦听器,并且如果触摸任何输入都不会触发。我真的不想为每个输入都创建一个单独的侦听器。
有什么建议吗?
更新:我也尝试过按照here的描述实施GestureDetector
,但似乎并没有在控制台中记录任何内容。
答案 0 :(得分:1)
恐怕由于要通知不同类型的事件,您将不得不为每种控件类型创建适当的侦听器并从中调用更新方法。如果您具有多个相同类型的单独控件,则可以创建抽象类并为每个控件扩展它。与此类似:
class AbstractTextWatcher implements TextWatcher {
protected OnInputTriggered onInputTriggered;
public AbstractTextWatcher(OnInputTriggered onInputTriggered){
this.onInputTriggered = onInputTriggered;
}
// afterTextChanged and beforeTextChanged skipped for brevity
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
onInputTriggered.onInputTrigerred();
}
}
// sample OnInputTriggered listener
class OnInputTriggered {
public void onInputTrigerred(){
// do stuff you need
}
}