这个问题一直困扰着我一段时间。我有一个列表视图,每行有三个EditText,用户可以在其中输入数据。当用户选择编辑框时,应该选择文本,因此当他键入第一个键时,将删除前一个文本。
这一切都与selectAllOnFocus选项设置为true完美配合。当我必须调用notifyDataSetChanged时会发生此问题。每行中都有一个按钮,用于删除行,即调用适配器的notifyDataSetChanged方法时。在此之后,当用户选择EditBox时,它不会选择整个文本,但是光标设置在文本的左侧,并且光标下方会显示一个箭头。
我尝试在代码和布局文件中设置selectAllOnFocus,但没有运气。
我该怎么办?我错过了什么吗?
我尝试禁用焦点更改事件,没有运气。
谢谢!
答案 0 :(得分:0)
您尝试实现的预期行为是什么?
编辑:
为什么不尝试手动触发两次点击事件。它是一个有点hacky的解决方案,但如果它工作比谁在乎。您可以做的是从列表视图中获取您想要选择文本的视图,并在帖子中点击两次点击
myEdit.post(new Runnable(){
public void run()
{
myEdit.performClick();
myEdit.performClick();
}
}
使用帖子可以确保在您的listview适配器上调用invalidate后重新充气视图后触发了事件
答案 1 :(得分:0)
因为只要我调用adapter.notifyDataSetChanged()就会发生这种情况,我想我应该试着去解决它。这就是我最终做的事情:
adapter.clear();
adapter = new AdapterOfWhateverItemsTypeIs(this, items);
listview.setAdapter(adapter);
adapter.notifyDataSetChanged();
在此之后,我得到了EditText的selectAllOnFocus选项的预期行为。