我正在尝试设置一个在执行新搜索时会刷新的网格视图。
这是我打电话来设置gridview
final GridElement_Results adapter = new GridElement_Results(this, savedInstanceState, track_name, album_name, track_num, album_id, album_link);
grid = (GridView)findViewById(R.id.grid_results);
grid.setAdapter(adapter);
正如你所看到的,我传递了一堆数组。
单击按钮,将调用getTracks()函数,该函数从服务器获取新数据。数组使用我已经验证的新数据进行更新。
icon_activesearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getTracks("newsearchterm");
adapter.notifyDataSetChanged();
grid.invalidateViews();
}
}
);
然后我调用adapter.notifyDataSetChanged()和grid.invalidateViews()来更新和重绘网格。但显然我在这里做错了。
是不是因为我将适配器设置为最终?要在onClick方法中访问它,我需要将其设置为final。
我应该做些什么才能让它发挥作用。
答案 0 :(得分:0)
你应该等到新数据获取然后通知适配器,但是你在getTracks()之后立即调用notify而没有任何延迟