Android中是否有一种方法可以绑定整个片段的输入更改事件,就像用户在输入字段中更改某些内容时可以为整个表单执行的操作一样?
例如:假设我有一个包含不同输入视图的片段,如TextField,CheckBox和e.t.c.我想为所有输入字段绑定一个输入更改事件,并通知用户是否在UI上更改了某些内容,或者没有。
答案 0 :(得分:2)
我认为没有这样的方式。
在仅谈论标准的android视图时,很容易定义'change',但这个概念过于抽象,无法实现,因为自定义组件的'change'可能不同。甚至TextView也有3种方法可以更改文本。
您可以做的是使您的片段实现TextWatcher
,OnCheckedChangeListener
(以及其他表单组件的其他侦听器),并在onViewCreated()
方法的视图中设置它们。
在侦听器中触发方法(onAfterTextChanged
,onChecked
等),您可以调用一些updateUiState()方法,该方法将检查表单的当前状态并执行您想要的操作(它可以检查是否所有文本字段都是填充以启用提交按钮,例如)。
答案 1 :(得分:0)
几乎所有组件都有侦听器,您可以在其中处理事件。
例如,复选框:
checkBox = (CheckBox)findViewById(R.id.sateliteCheckBox);
satView.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (isChecked){
// perform logic
}
}
});