如何在ListView中正确处理Android EditText输入?

时间:2010-10-03 09:16:32

标签: android listview android-edittext lost-focus

在我的应用程序中,我有一项活动在SortedMap内添加/删除/编辑记录。该活动是ListActivity的扩展。我已为集合项实现了自定义ArrayAdapter

每个ListView项(对应于基础记录)由TextView s,EditTextButton组成,用于删除记录本身。布局大致如下:

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}}引起的。

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

TextView扩展的

EditText包含可能对您有用的方法public void addTextChangedListener (TextWatcher watcher)

我之前没有使用它,但似乎只要用户编辑TextView就可以调用它,然后每次更改时都可以处理它。如果每次用户删除或添加一个字符时调用它,这可能会导致很多开销,但这可能是最简单的解决方案。