我正在使用GridView来显示用户可以选择的一组类别.网格的每个项目都由ImageView和TextView组成,两者都从服务器检索.触摸项目时,将启动另一个活动.
我以为一切都是正确的,直到我注意到当我滚动屏幕时有些重复.每当我向下滚动网格,然后向后滚动,它就会改变它的位置并重复.但即使我触摸了搞砸了,也会将正确的值发送到下一个活动.
查看LogCat,发生对服务器的任何重复请求.事实上,我在滚动时得到了这个:
06-28 12:36:38.554: D/dalvikvm(358): GC_EXTERNAL_ALLOC freed 2061 objects / 156024 bytes in 51ms
06-28 12:36:42.915: D/dalvikvm(358): GC_FOR_MALLOC freed 6590 objects / 737528 bytes in 57ms
06-28 12:38:26.725: D/dalvikvm(358): GC_EXTERNAL_ALLOC freed 5426 objects / 468176 bytes in 71ms
06-28 12:38:26.875: D/dalvikvm(358): GC_EXTERNAL_ALLOC freed 409 objects / 17480 bytes in 68ms
Run Code Online (Sandbox Code Playgroud)
看起来每次我滚动,它都会重绘...
更新:它只在我第一次向下滚动GridView时重绘它.在此之后,所有的itens,包括重复的,都会保留在它的位置上.
我的java类:
public void proccess(){
int qtdCategorias = json.length();
imagens = new Drawable[qtdCategorias];
categorias = new String[qtdCategorias];
for (int i=0; i<qtdCategorias; i++){
JSONArray c = json.optJSONArray(i);
String urlAmigavel …Run Code Online (Sandbox Code Playgroud)