Android 列表视图适配器问题
Android list view adapter hiccup
所以我注意到 Android 列表适配器中有些奇怪。
我有一个适配器,可以说 template.xml,这个模板有一个文本视图(TextView1 默认值:"hello")。在某些情况下,TextView1 的值必须为 "not now",而在其他情况下则没有(即应显示默认值)。当列表包含所有默认值时,一切正常。
但是一旦在特定适配器的 GetView 中将其更改为 "not now",它也会影响其他适配器(并非总是如此,如果我关闭 activity 并重新打开它可能会起作用) .
大家怎么看?
没有你的代码很难说,但这看起来像是重用视图的问题。
确保将 'getView' 中的每个视图恢复为默认文本或自定义文本。如果您不更改它,它将保留之前设置的值,这可能不是默认值。
该行为按预期发生。
适配器通过使用 convertView 回收视图,这意味着,例如,您在位置 10 返回的视图可以在位置 19 重用。
例如:
如果您将位置 10 设置为 "not now",并且没有在位置 19 的 getView 方法中将其更改回默认值,它将保留您为位置 10 设置的值。
所以我注意到 Android 列表适配器中有些奇怪。
我有一个适配器,可以说 template.xml,这个模板有一个文本视图(TextView1 默认值:"hello")。在某些情况下,TextView1 的值必须为 "not now",而在其他情况下则没有(即应显示默认值)。当列表包含所有默认值时,一切正常。
但是一旦在特定适配器的 GetView 中将其更改为 "not now",它也会影响其他适配器(并非总是如此,如果我关闭 activity 并重新打开它可能会起作用) .
大家怎么看?
没有你的代码很难说,但这看起来像是重用视图的问题。
确保将 'getView' 中的每个视图恢复为默认文本或自定义文本。如果您不更改它,它将保留之前设置的值,这可能不是默认值。
该行为按预期发生。
适配器通过使用 convertView 回收视图,这意味着,例如,您在位置 10 返回的视图可以在位置 19 重用。
例如: 如果您将位置 10 设置为 "not now",并且没有在位置 19 的 getView 方法中将其更改回默认值,它将保留您为位置 10 设置的值。