我在 ListView 中有一堆项目。每个项目都包含几个可编辑的视图。我想保存用户对这些所做的更改。保存发生的事件是当项目失去焦点时。
我目前看到两种方式:
View.OnFocusChangeListener() with onFocusChange(View v, boolean hasFocus)
这可行但很混乱,因为每个项目都包含几个可编辑的视图。当整个项目散焦时,我宁愿保存。到目前为止,我试图简化的只是复杂的事情。
如果有一个 OnItemDeSelectedListener 那就完美了,但只有相反的情况:
AdapterView.OnItemSelectedListener() with onItemSelected(AdapterView<?> adapterView, View view, int i, long l)
从表面上看,这看起来不错。我只是创建了变量 lastSelectedView,所以我知道最后选择(取消选择)的项目是什么。问题是 ListView 如何回收视图。我相信不能保证适配器没有回收 lastSelectedView 并因此更改了它包含的数据。这是一个合理的假设吗?
有没有一种合理的方法来解决 OnItemSelectedListener 的回收视图问题?