我在Android 2.1上,我有一个多列自定义列表视图使用BaseAdapter,在listview末尾有一个可编辑的edittext。如果列表视图中的数据不包含用户选择的数据,则用户应该能够输入数据。如果列表中已有数据,则用户可以使用自定义选择器选择数据。如果在列表视图中进行了选择,并且用户希望在选择后在底部的文本字段中输入数据,则应取消选择列表视图中的标记。我尝试使用onclick()方法使用单击侦听器编辑文本。第一次单击它时,编辑文本正在获得焦点,并且不会触发onclick()方法。当第二次单击时,会触发onclick()方法并调用notifyDataSetChanged()方法。我试图从Focus Listener调用notifyDataSetChanged()方法,列表视图选择在我第一次尝试时消失,编辑文本没有从键盘接收任何数据输入(冻结)。请帮助。谢谢,Venkat
答案 0 :(得分:1)
最后我修好了。在edittext获得的焦点上的notifyDataSetChanged()递归调用自己。这个问题就在那里。因此,我不是从焦点侦听器调用notifyDataSetChanged(),而是使用activity中的方法从edittext的焦点侦听器更新列表。因此,notifyDataSetChanged()没有递归问题。