在Android中的对话框中显示ListView EditText中的焦点问题
我必须在对话框中显示包含EditText的ListView,其中用户可以在EditText中键入文本,并且其内容不应丢失。
例如,如果用户在第一个EditText中键入“11”,在第二个EditText中输入“22”,在第三个EditText中输入“33”,然后在第十个EditText中向下滚动列表视图,之后用户再次在第一个EditText的时候,第一个EditText的值应该是“11”,第二个EditText的是“22”等,我已经通过在EditText中改变文本时设置EditText来实现这一点。
我使用NiftyDialog作为对话框(链接)。 问题在于EditText随机获得焦点(它有时有效,有时不会)。
我已经设定
机器人:descendantFocusability = “afterDescendants”
在ListView中设置
机器人:windowSoftInputMode = “adjustPan”
在清单文件中,但它不能正常工作。
这里可能是什么问题?
使用大小为10的字符串类型的另一个列表,并将每个字符串的最初位置置于空白处,然后在edittext和onTextchange方法上添加一个textwatcher重新指定该特定位置的列表中的字符串值。请提供您的适配器代码
  你是否明确要求EditText的焦点?  如在myEditText.requestFocus() 
从你的问题来看,你似乎希望聚焦的编辑文本随着用户的向下滚动而改变。 你能澄清你期望的行为和发生的事情吗?
  前一段时间我用EditText关注了这个问题,并意识到只需在现有视图上设置属性就不会起作用。  在我的情况下,这是为了避免键盘弹出,但我相信,同样的解决方案也适用于你的情况。 
  使用android:focusable="true"和android:focusableInTouchMode="true"在顶部的所有其他视图上添加虚拟布局。  这样焦点将转到这个布局(它位于顶部),并且ListView EditText随机焦点问题将得到解决。 
    <!-- Stop auto focussing the EditText -->
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:background="@android:color/transparent"
        android:focusable="true"
        android:focusableInTouchMode="true">
    </LinearLayout>
上一篇: Focus issue in ListView EditText display in Dialog in Android
