android Gridview重新加载阵列

android Gridview重新加载阵列,android,arrays,gridview,Android,Arrays,Gridview,我第一次在GridView上工作,遇到了以下问题。我指的是本教程 图标和文本按数组中的顺序显示。如下面的屏幕截图所示 第一个屏幕截图: 但是当我增加列的宽度和高度,这样就不会一次看到所有的数据(也就是说,我需要向下滚动才能看到最后的数据。我想下面的屏幕截图可能会有所帮助 第二张截图: 第三个屏幕截图这是向下滚动后可以查看的剩余内容: 如果您比较链接或第一个屏幕截图中的实际文本数组,即“String[]web”。stumbleUpon显示的是正确的数组顺序,但在“github”之后,显示的是“go

我第一次在GridView上工作,遇到了以下问题。我指的是本教程 图标和文本按数组中的顺序显示。如下面的屏幕截图所示 第一个屏幕截图:

但是当我增加列的宽度和高度,这样就不会一次看到所有的数据(也就是说,我需要向下滚动才能看到最后的数据。我想下面的屏幕截图可能会有所帮助

第二张截图:

第三个屏幕截图这是向下滚动后可以查看的剩余内容:

如果您比较链接或第一个屏幕截图中的实际文本数组,即“String[]web”。stumbleUpon显示的是正确的数组顺序,但在“github”之后,显示的是“google”和“facebook”,而不是“SoundCloud”、“Reddit”、“Blogger”

现在我的问题是:为什么会发生这种情况?适配器是否只加载可见的内容,并且在其他部分可见后重新加载内容? 我可以知道解决这个问题的方法吗?或者使用gridview的正确方法是什么


如果您无法理解我的疑问,请随时询问。提前谢谢。

将此代码置于其他条件下,它将工作。

         TextView textView = (TextView) grid.findViewById(R.id.grid_text);
        ImageView imageView = (ImageView)grid.findViewById(R.id.grid_image);
        textView.setText(web[position]);
        imageView.setImageResource(Imageid[position]);

因此,当视图被重用时,您没有设置数据(即图像和文本)

发布适配器代码可能会帮助我解决您的问题。您可以在教程链接CustomGrid中找到它。java是其中的适配器代码。阅读适配器和gridview的行为,您将了解它:)我已经阅读了developers.com上提到的示例。它说adapter中的getView()方法为每个传递的数据创建一个新视图。我的问题是,当整个视图变得更大以适应屏幕时,为什么它的行为会很奇怪。例如,滚动出现在图片中?如果(convertView==null)此语句检查视图为null的位置,请参见所谓的视图循环。如果视图被创建(当不是空的时候),更新基本的文本和图像(你错过了)。嘿,谢谢它的工作。。你能解释一下为什么它不是第一次加载所有数据吗?确切的行为是什么?比如当我向上滚动时,它是否再次开始重新加载数组?我甚至在其他应用程序中尝试了相同的代码,并且数组是按顺序0-1-2-3-4-5-6-0-7加载的。。如果最后一个元素不在视图中,除非我向上滚动。。到底是什么原因导致了这种行为?