【问题标题】:onCreateView items should load only once in android swipeable tabonCreateView 项目应该只在 android swipeable 选项卡中加载一次
【发布时间】:2015-04-14 12:39:58
【问题描述】:

SFragment 在一个 android 可滑动标签中,我在片段 onCreateView 上加载我的网格,所以每当我访问标签时,我的项目需要一段时间才能加载。但我不希望每次打开该选项卡时都加载这些项目。

我想要的是它应该只在第一次尝试时加载,之后每当我打开该选项卡时它就不应该加载。 我怎样才能做到这一点,提前谢谢你。

public class SFragment extends ListFragment implements OnTaskCompleted {

    GridView grid;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.menu_grid_main_s, container, false);

        new SidesMenuAsyncTask(getActivity(), this).execute();


        grid = (GridView) view.findViewById(R.id.grid_s);
        return view;
    }

    @Override
    public void onTaskCompleted(JSONArray responseJson) {

        try {
            List<String> descriptions = new ArrayList<String>();
            List<String> imageUrls = new ArrayList<String>();
            List<String> price = new ArrayList<String>();

            for (int i = 0; i < responseJson.length(); ++i) {
                JSONObject object = responseJson.getJSONObject(i);

                if ((object.getString("MainCategoryID")).equals("1") && (object.getString("SubCategoryID")).equals("1") ) {
                    Log.i("ImageURL ", object.getString("ImageURL"));
                    imageUrls.add(object.getString("ImageURL"));
                    Log.i("Description ", object.getString("Description"));
                    descriptions.add(object.getString("Description"));
                    Log.i("Price ", object.getString("Price"));
                    price.add(object.getString("Price"));
                }

            }

            CustomGridS adapter = new CustomGridS(getActivity(), descriptions, imageUrls, price);
            grid.setAdapter(adapter);
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

【问题讨论】:

    标签: android grid fragment


    【解决方案1】:

    使用 图像加载器 加载图像并将该图像保存在 缓存内存 中,因此每次您不必加载图像时,图像加载器都会从缓存中获取图像。 ..

    【讨论】:

    【解决方案2】:

    从服务器获得响应后,将其存储在 sqlite db 中,并在您想在片段上加载内容时从数据库中检索它。

    【讨论】:

      猜你喜欢
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多