嗨,我正在尝试创建一个显示ExpandableListView的活动,如图所示 .
当您单击该组时,它会展开并显示带有textview和editext的LinearLayout .
我知道的问题是,当点击EditText时它没有得到焦点,我必须点击它两次以使它获得焦点并显示键盘,然后当我输入文本时我最初看不到任何内容当我正在键入时,然后当我隐藏键盘时,EditText会更新我输入的文本
我尝试将android:descendantFocusability =“afterDescendants”添加到expandableListVie布局,但行为是相同的 .
任何的想法??或任何其他方式我可以实现这种布局??
4 回答
将此添加到活动中android:name之后的清单中
我不知道如何解决聚焦问题,但我知道为什么你必须折叠并展开组以查看editText中的文本 . 除非您滚动或执行诸如展开和折叠列表视图之类的操作,否则列表视图不会刷新 . 因此,我能想到解决此问题的最佳方法是创建一个字符串列表,该列表将成为listview中editTexts的值 . 然后为每个editTexts创建一个onKeyClick()侦听器并执行以下操作:
这里发生的是,一旦按下某个键,您将获得editText的值,并将列表中字符串的值更改为新值 . 然后,您告诉适配器其中一个项的值已更改,需要刷新 . 虽然这不是解决问题的有效方法,但它是一种备份解决方案,以防您无法想到更好的方法 .
尝试使用该函数将Edittext中的值存储到String变量中
并且在
getChild()
函数中始终检查temp和settext()
值中的数据到特定的edittext
.你必须添加两件事 .
1)
expandableListView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
2)在清单中(在您的活动上)
android:windowSoftInputMode="adjustPan"