Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android listview中的项目看起来非常随机_Android_Listview - Fatal编程技术网

Android listview中的项目看起来非常随机

Android listview中的项目看起来非常随机,android,listview,Android,Listview,我创建了一个列表,每个项目中都有一个TextView和一个EditText。 为了填充正确的值,我定义了几个“数据类型”。例如,如果我们需要键入日期,我会显示一个日期选择器,并在EditText中填充返回值,对于NumericID,我会将numPad定义为软键盘 我有一个数据数组列表,对于每个项目,我都有这样的信息:一个用于textView的字符串,一个数据类型和一个用于EditText的字符串 我有两个问题,我认为它们是相关联的 首先,我的数据列表的大小只有10个,所以我的列表中有10个项目。

我创建了一个列表,每个项目中都有一个TextView和一个EditText。 为了填充正确的值,我定义了几个“数据类型”。例如,如果我们需要键入日期,我会显示一个日期选择器,并在EditText中填充返回值,对于NumericID,我会将numPad定义为软键盘

我有一个数据数组列表,对于每个项目,我都有这样的信息:一个用于textView的字符串,一个数据类型和一个用于EditText的字符串

我有两个问题,我认为它们是相关联的

首先,我的数据列表的大小只有10个,所以我的列表中有10个项目。但是在创建列表时,getView()会被调用20多次,每次软键盘显示/隐藏时,该函数都会被调用到所有“位置”。它似乎是有线的,不是吗

第二个是当我用arrayAdapter生成列表时,我的文本视图看起来不错,但编辑文本看起来很随机:在我的数据列表中,我有“ContactName”-“UserName”-“Jane”和“CreateDate”-“Date”-“12/02/12”等。当创建列表时,一切都很好。但是当我滚动一点我的列表,或者我显示然后隐藏键盘时,我的编辑文本与我的文本视图不匹配,ContactName的编辑文本可能是日期类型

这是我的密码: setListAdapter(新的ArrayAdapter(this,R.layout.itemview,datalist){

依照

这不是问题,绝对不能保证getView()的顺序也不会被调用多少次。
在您的特定情况下,通过给ListView一个height=wrap\u内容,您正在做最糟糕的事情。这迫使ListView在布局时测量适配器外的几个子项,以了解它应该有多大。
这就是ListView提供传递给ge的ConvertView的原因tView()甚至在滚动之前

第一次列表视图仅创建设备可以占用的视图(行),如果滚动列表视图,它将检查视图类型是否已更改,如果已更改,它将创建新视图,否则它将通过替换数据重新使用视图

另外,如果您将列表视图高度设置为“包裹内容”,则仅显示前三个视图(行),其余视图将被忽略

EditText中的问题可能是由于if-else块造成的。请正确检查。正在检查

if(data=null){
  vholder.fieldName.setText(data.name);
}else{
   showing Edit Text // Check it properly
}
First one, my data list's size is only 10, so I've 10 items in my list. But getView() is called more than 20 times when the list's created 
First one, my data list's size is only 10, so I've 10 items in my list. But getView() is called more than 20 times 
if(data=null){
  vholder.fieldName.setText(data.name);
}else{
   showing Edit Text // Check it properly
}