【问题标题】:Android load view while waiting for Volley responseAndroid 在等待 Volley 响应时加载视图
【发布时间】:2015-08-05 10:37:19
【问题描述】:

我有一个显示带有远程图像的图像滑块的片段(我使用了 AndroidImageSlider 库)。在 OnCreateView 我做一个凌空请求,我得到图像的 url。问题是 volley 是 异步 并且滑块得到 NUllPointerException 因为 OnCreateView 不等待带有 url 的响应。

如何加载片段并告诉滑块等待 url?

这是一个只有一张图片的代码示例(为了简洁起见)。

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

        getApartmentData(); // volley request. It set the image_url field

        // image slider
        imgSlider = (SliderLayout) view.findViewById(R.id.img_slider);
        imgSlider.stopAutoCycle();
        HashMap<String,String> url_maps = new HashMap<String, String>();
        url_maps.put("name1", image_url);

        for(String name : url_maps.keySet()){
            DefaultSliderView defaultSliderView = new DefaultSliderView(getActivity());
            defaultSliderView
                    .image(url_maps.get(name))
                    .setScaleType(BaseSliderView.ScaleType.Fit)
                    .setOnSliderClickListener(this);
            imgSlider.addSlider(defaultSliderView);
        }
        imgSlider.setPresetTransformer(SliderLayout.Transformer.Default);
        imgSlider.setPresetIndicator(SliderLayout.PresetIndicators.Center_Bottom);
        imgSlider.setDuration(4000);
        imgSlider.addOnPageChangeListener(this);
    }

【问题讨论】:

  • 放置有问题的代码
  • @krishna-v 代码已发布。

标签: android asynchronous android-volley


【解决方案1】:

我解决了将此代码放入 volley 请求的 OnResponse 中:

    HashMap<String,String> url_maps = new HashMap<String, String>();
    url_maps.put("name1", image_url);

    for(String name : url_maps.keySet()){
        DefaultSliderView defaultSliderView = new DefaultSliderView(getActivity());
        defaultSliderView
                .image(url_maps.get(name))
                .setScaleType(BaseSliderView.ScaleType.Fit)
                .setOnSliderClickListener(this);
        imgSlider.addSlider(defaultSliderView);
    }

【讨论】:

    猜你喜欢
    • 2022-01-06
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多