listview中的Android edittext失去了对调用notifydatachanged的关注

标签 android android-edittext

我在 ListView 中有一些编辑文本。我在edittext上有一个通用的focuslistener,它通过调用notifydatachanged更新数据模型的值以及当焦点丢失时edittext的背景。问题是,如果其中一个编辑文本保持焦点,当我触摸下一个编辑文本时,它会暂时获得焦点然后失去焦点。我怀疑这是由于 notifydatachanged 方法调用导致所有 View 被重绘,之后焦点丢失。有人对此问题有建议或解决方法吗?谢谢。

最佳答案

这确实发生了,因为所有的 View 都被重绘了,所以代表任何过去被聚焦的行的编辑文本现在是一个完全不同的对象。在适配器中设置一个变量:int currentFocusedRow;

在您的适配器的 getView 中:为每个编辑文本添加一个 onFocusChanged 监听器,当该编辑文本获得焦点时,设置 currentFocusedRow = 焦点编辑文本恰好位于的任何行。还将 currentFocusedRow 中的任何编辑文本设置为专注。

关于listview中的Android edittext失去了对调用notifydatachanged的关注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9527067/

相关文章:

java - 尝试在 Android 中打开新屏幕/Activity

java - 无法在 Android 应用程序中使用 javax 发送电子邮件

java - 无法解析配置 ':app:_debugApkCopy' 的所有依赖项

android - 如何让 TextWatcher 在执行某些操作之前等待一段时间

android - 如何使用 ActionDone 按钮(不带 Enter 按钮)实现多行 EditText

android - 即使 setFocusable(true),PopupWindow 中的 EditText 也不显示键盘

android - 无法使用回收器 View 滚动数据

android - Eclipse 中的 ADT 插件问题

android - 是否可以在 Marshmallow 之前的 Android 版本中创建自定义 float 文本选择菜单?

android - 我怎样才能制作一个看起来像这个的自定义 Holo EditText