好的,这是问题所在。我有一个屏幕,其中包含许多输入字段,格式为EditText
,Spinner
,Toggle
,还有我自己的自定义视图,例如滑块和自定义选择器。当用户按下时,仅当他/她对任何输入字段进行了任何更改时,我才想显示一个确认Dialog
。
我知道我可以为我的所有TextWatcher
字段添加一个EditText
,但是那样行不通,因为我需要对其中某些字段在其afterTextChanged
中进行单独的API调用顺着。我知道我可以为所有字段编写自定义侦听器,但这似乎也不是一个很好的解决方案。
这是我想到的两件事。当用户按下时,我想递归地遍历根布局中的所有View
,如此处How to iterate through all activity components(views) in Android所述,并检查View
是否脏,然后进行相应设置显示确认Dialog
。另一种方法可能是实现自定义onDirtyListener,但是我不知道从何处开始以及它是否实际起作用。我们将不胜感激对此主题的任何见识。
PS:我也正在使用DataBinding
,因此,如果有一种使用DataBinding
来完成此任务的方法,那也将很棒。