我在用着public class SettingValueAdapter extends BaseAdapter
它有一个数组private SettingsValue[] values;
,因为它是数据集。
当活动可见时,我更改数据(也称为动态)
我使用notifyDataSetChanged
但用户界面没有改变。
我已经看到了一个我应该使用ArrayList
并实际删除和重新输入元素的答案。
但是我有一个数组,我只能重新分配它或重新分配其中的元素。
我无法更改为 ArrayList,因为这是一个常见的共享代码,它会太痛苦。
这真的是问题吗?这就是为什么我的 UI 不会动态变化的原因?
在我的活动中:
public void refreshListIcons() {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (categories != null) {
SettingsValue[] values = adapter.getValues();
for (int i = 0; i < values.length; i++) {
values[i].icon = ResManager
.GetSkinDrawable(categories[i].iconName + ".bin");
}
adapter.setValues(values);
adapter.notifyDataSetChanged();
//mListView.invalidateViews();
//mListView.refreshDrawableState();
}
}
});
}