【发布时间】:2016-04-02 00:27:24
【问题描述】:
我必须在 Dialog 上显示 ListView 包含 EditText,用户可以在 EditText 中键入文本,并且其内容不应丢失。
例如,我在列表视图中有 10 个 EditText,如果用户在第一个 EditText 中键入“11”,在第二个 EditText 中键入“22”,在第三个 EditText 中键入“33”并在该用户滚动后向下滚动第十个 EditText 的列表视图再次在第一个 EditText 时第一个 EditText 中的值应该是“11”,对于第二个 EditText“22”等等,我通过在 EditText 中更改文本时设置 EditText 来实现这一点。
我使用 NiftyDialog 作为对话框 (Link)。问题是 EditText 随机获得焦点(有时有效,有时无效)。
我已经设置了
android:descendantFocusability="afterDescendants"
在ListView中设置
android:windowSoftInputMode="adjustPan"
在清单文件中,但无法正常工作。
这可能是什么问题?
【问题讨论】:
-
你需要展示更多的代码!
-
创建一个活动,显示 NiftyDialog(在其中设置自定义视图)并在该自定义视图中获取 listview,在其行文件中获取 EditText,在 ArrayList 中获取 10 个虚拟数据并设置为 BaseAdapter,而不是检查是否您是否有任何焦点问题。
-
@AADTechnical:如果您对此问题有任何建议或替代解决方案,请告诉我。
-
设置你的listview android:clickable="false" 并使用你的editText android:clickable/touchable ="true" 来监听editText的触摸/点击事件。并在您的自定义适配器中使用 View holder,然后将值 11、22 显示为 EditText 提示。这不会触发editText textwatcher、编辑器监听器。
-
@Jayesh,我希望它对你有用,vikaskanani.wordpress.com/2011/07/27/…
标签: android android-listview android-edittext focus android-dialog