在我的应用程序中,我有一项活动在SortedMap
内添加/删除/编辑记录。该活动是ListActivity
的扩展。我已为集合项实现了自定义ArrayAdapter
。
每个ListView
项(对应于基础记录)由TextView
s,EditText
和Button
组成,用于删除记录本身。布局大致如下:
ListView
----------------------------------------------------
[TextView] [EditText] [TextView] [EditText] [Button]
----------------------------------------------------
[TextView] [EditText] [TextView] [EditText] [Button]
我的目标是在用户完成编辑后立即处理用户输入的EditText
输入,即当用户离开EditText
或用户已按回到onFocusChanged
时关闭屏幕键盘。
我尝试通过处理EditText
来实现此功能,以处理onFocusChanged
中可见的文字。然而,这种方法效果不佳,EditText
方法经常被随机调用,即使对于未选择的方法也是如此。未经编辑的{{1}}。这可能是由this article on Android Blog StackOverflow question中的{{3}}引起的。
有更好的方法吗?
答案 0 :(得分:2)
TextView
扩展的 EditText
包含可能对您有用的方法public void addTextChangedListener (TextWatcher watcher)
。
我之前没有使用它,但似乎只要用户编辑TextView
就可以调用它,然后每次更改时都可以处理它。如果每次用户删除或添加一个字符时调用它,这可能会导致很多开销,但这可能是最简单的解决方案。