我的问题出在两个方面。
第一期:滚动健忘症
我有一个带有微调器和编辑文本的ListView。它从webservice获取它的数据。问题是当我在EditText上写一个值或为旋转器选择一些东西并将它们滚出视图时。当我回来时,字段为空,旋转器再次处于默认选择状态。
尝试解决方案 我尝试通过将ScrollingCacheEnabled编程和AXML文件中的设置为true和false来解决问题,以查看是否存在问题。似乎没有任何影响。
第二期:焦点丢失
当我在同一个ListView中触摸EditText时,我会让键盘出现,但是我将焦点放在了场上,需要再次触摸才能获得焦点,这样我就能写出来。
尝试解决方案 我摆弄着那些可以聚焦的领域,Focusavle在toucmode,可触摸和诸如此类的东西,但空手而归。
老实说,我对Android以及这个级别的编程都很陌生,但我在这方面做得最好。我可能因为缺乏知识而错过了一些东西,或者只是有经验的人可以解决和解决的问题。 第二个问题现在并没有那么糟糕(仍然填写了很多字段后,它确实让它累了两次......)但滚动问题是必须的。
答案 0 :(得分:1)
我认为您的问题与您在更改包含它们的Adapter
时忘记更新View
中的项目有关。因此,您需要连接View
的事件以更新项目。
为什么呢?如果您仔细查看Adapter
ListView
,则会使用convertView
的值填充GetItem(position)
。因此,如果该项目未反映您对View
所做的更改,则您必须获得该项目的初始值。
所以你需要做的是连接SpinnerValue.ItemSelected
和所有其他可以改变事件的View
,以便Adapter
中的项目更新它们的值。请记住,只在首次创建View
时添加事件处理程序。这就是convertView
为空的时候。
还要考虑更改行:
if (SpinnerValue.Adapter.Count.Equals(2))
{
SpinnerValue.SetSelection(1);
}
基于适配器中的项目,而不是每次都将其设置为1.
你关注的焦点问题的基础是,ListView
并不是因为View
内部的ListView
想要获得焦点。当您将DecendantFocusability
实例化为DescendantFocusability.AfterDescendants
时,请尝试设置lstPrevzem.DescendantFocusability = DescendantFocusability.AfterDescendants;
{{1}}:
{{1}}
答案 1 :(得分:0)