我在listview中有几个edittext。我在edittext上有一个通用的focuslistener,它通过调用notifydatachanged来更新数据模型的值,以及当焦点丢失时edittext的背景。问题是,如果其中一个edittext保持焦点,当我触摸下一个edittext时,它会暂时获得焦点,然后失去焦点。我怀疑是因为调用了notifydatachanged方法,导致所有视图都被重新绘制,之后焦点就丢失了。有没有人有关于这个问题的建议或解决办法?谢谢。
发布于 2012-03-02 13:38:33
这确实发生了,因为所有的视图都被重新绘制了,所以表示以前被聚焦的任何行的编辑文本现在是一个完全不同的对象。在适配器中设置一个变量: int currentlyFocusedRow;
在适配器的getView中:为每个编辑的文本添加一个onFocusChanged侦听器,当编辑的文本获得焦点时,设置currentlyFocusedRow =关注的编辑文本所在的任何行。还要将currentlyFocusedRow中的任何编辑文本设置为焦点。
发布于 2012-12-05 18:04:09
设置
android:windowSoftInputMode="adjustPan"
对于您在AndroidManifest.xml中的活动
发布于 2012-10-06 09:42:15
我也遇到了EditText失去焦点的问题,但是调用setDescendantFocusability(ListView.FOCUS_AFTER_DESCENDANTS)
解决了这个问题。
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
final ListView lv = getListView();
lv.setDescendantFocusability(ListView.FOCUS_AFTER_DESCENDANTS);
}
https://stackoverflow.com/questions/9527067
复制相似问题