每当我将视图从listview更改为gridview

时间:2015-07-23 07:31:31

标签: android android-fragments android-listview android-gridview

我有两个按钮1)listview和2)gridview:

默认情况下,我有listview视图,对于列表,我使用AsyncTask方法获取所有记录,其中我有绑定适配器:

adapter = new CategoryAdapter(context, item_name);

现在,当我将视图从列表视图更改为gridview时,它正在加载并再次使用AsyncTask方法获取数据。

所以当我将视图从列表更改为网格或网格到列表时,我不想一次又一次地加载数据。

例如,目前所有的电子商务应用程序都有这个概念。当我们将视图从列表视图更改为网格或网格到列表视图时,它不会再次加载数据。它只是将listview转换为gridview。

我怎样才能实现这个目标?

2 个答案:

答案 0 :(得分:1)

保留您从AsyncTask获得的记录列表,并在点击网格按钮时将此记录列表提供给GridAdapter。无需再次运行AsyncTask

答案 1 :(得分:1)

您可以使用新引入的RecyclerView组件。它能够以不同的方式呈现数据 - 列表,网格或使用LayoutManager实例自定义的内容。尝试这样的事情:

// Shows the data as a list
recyclerView.setLayoutManager(new LinearLayoutManager(this));

// Shows the data as a grid of two columns
int columns = 2;
recyclerView.setLayoutManager(new GridLayoutManager(this, columns));

视图和适配器保持不变。唯一改变的是数据呈现给用户的方式。