为什么我的寻呼机适配器无法显示我从openweather加载的数据(以json格式)无法正确显示

Choy Wing Lun

为什么我的寻呼机适配器无法显示我从openweather加载的数据(以json格式)无法正确显示。我在幻灯片视图中有五页,除非加载到第三页,否则第一页中的数据将不会显示,只有加载到第四页时,第二页中的数据才会显示。

这是我的滑块java类的编码

公共类SliderAdapter扩展了PagerAdapter {

Context context;
LayoutInflater layoutInflater;
private static final String TAG = "SliderAdapter";

public SliderAdapter(Context context)
{
    this.context=context;
}

public double[] slide_headings= new double[50];
public String[] slide_desc=new String[50];
public String[] slide_images= new String[50];
public static final String URL_DATA = "http://api.openweathermap.org/data/2.5/forecast?id=1732698&appid=4bdfb7127d4a85742cfbb201078ba566";


@Override
public int getCount() {
    return 5;
}

@Override
public boolean isViewFromObject(View view,Object o) {
    return view== o;
}

@Override
public Object instantiateItem(ViewGroup container,int position)
{
    getData();
    layoutInflater= (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
    View view=layoutInflater.inflate(R.layout.slide_layout,container,false);
    ImageView slideImageView=view.findViewById(R.id.imageView);

    TextView slideHeading=view.findViewById(R.id.textView);
    TextView slideDescription=view.findViewById(R.id.textView2);
    Glide.with(context).load(slide_images[position]).into(slideImageView);

    slideHeading.setText(Double.toString(slide_headings[position]));
    slideDescription.setText(slide_desc[position]);
    container.addView(view);
    return view;
}

private void getData() {
    final ProgressDialog progressDialog = new ProgressDialog(context);
    progressDialog.setMessage("Loading data.....");
    progressDialog.show();
    StringRequest stringRequest = new StringRequest(Request.Method.POST,
            URL_DATA,

            new Response.Listener<String>() {
                @Override
                public void onResponse(String s) {
                    progressDialog.dismiss();
                    try {
                        JSONObject jsonObject = new JSONObject(s);
                        for (int i = 0; i < jsonObject.length(); i++) {
                            JSONArray JA = (JSONArray) jsonObject.get("list");
                            for (int j = 0; j < JA.length(); j++) {
                                JSONObject JO = JA.getJSONObject(j);
                                JSONObject jo = (JSONObject) JO.get("main");
                                slide_headings[j] = jo.getDouble("temp");
                                JSONArray ja = JO.getJSONArray("weather");
                                for (int k = 0; k < ja.length(); k++) {
                                    JSONObject o = ja.getJSONObject(k);
                                    slide_desc[j] = o.getString("main");
                                    slide_images[j] = "http://openweathermap.org/img/w/" + o.getString("icon") + ".png";
                                }
                            }
                        }

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },
            //this method will run when there is error sending the request
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError volleyError) {
                    progressDialog.dismiss();
                    Toast.makeText(context, volleyError.getMessage(), Toast.LENGTH_LONG).show();
                }
            });

    RequestQueue requestQueue = Volley.newRequestQueue(context);
    requestQueue.add(stringRequest);
}


@Override
public void destroyItem(ViewGroup container, int position,Object object) {
    container.removeView((RelativeLayout)object);
}

}

这是我的主要Java类的示例

公共类MainActivity扩展了AppCompatActivity {

private ViewPager mSLideViewPager;
private LinearLayout mDotLayout;
private SliderAdapter sliderAdapter;
private TextView[] mDots;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mSLideViewPager=findViewById(R.id.slideViewPager);
    mDotLayout=findViewById(R.id.dotsLayout);

    sliderAdapter=new SliderAdapter(this);
    mSLideViewPager.setAdapter(sliderAdapter);

    addDotsIndicator(0);

    mSLideViewPager.addOnPageChangeListener(viewListener);

}

public void addDotsIndicator(int position){
    mDotLayout.removeAllViews();
    mDots=new TextView[5];

    for(int i=0;i<mDots.length ;i++)
    {
        mDots[i] = new TextView(this);
        mDots[i].setText(Html.fromHtml("&#8226"));
        mDots[i].setTextSize(35);
        mDots[i].setTextColor(getResources().getColor(R.color.colorTransparentWhite));

        mDotLayout.addView(mDots[i]);
    }
    if(mDots.length >0){
        mDots[position].setTextColor(getResources().getColor(R.color.colorWhite));
    }

}

ViewPager.OnPageChangeListener viewListener= new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageScrolled(int i, float v, int i1) {

    }

    @Override
    public void onPageSelected(int i) {
        addDotsIndicator(i);
    }

    @Override
    public void onPageScrollStateChanged(int i) {

    }
};

}

Choy Wing Lun

我使用了数组列表而不是数组,这解决了我的问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

onCreateView寻呼机适配器

来自分类Dev

我的片段状态寻呼机适配器中的空指针异常

来自分类Dev

为什么我无法在适配器中接收数据

来自分类Dev

如何为查看寻呼机选择适配器?

来自分类Dev

为什么我的listView不显示适配器的列表?

来自分类Dev

查看寻呼机未正确显示

来自分类Dev

我已将 JSON 数据加载到对象中,但无法将它们连接到数组适配器以在多个微调器上显示它们

来自分类Dev

Imageview无法通过ListView适配器正确显示

来自分类Dev

我的蓝牙适配器本身会关闭,而我无法重新打开,为什么?

来自分类Dev

为什么我无法从我的活动中调用适配器方法

来自分类Dev

到达最后一项时,寻呼机适配器未注册

来自分类Dev

视图寻呼机的无休止适配器概念

来自分类Dev

视图寻呼机适配器中的回调更改为空对象

来自分类Dev

为什么我的Recycler适配器/ Recycler视图没有连接到片段并且没有显示?

来自分类Dev

为什么我的Wi-Fi适配器在16.04中没有显示为wlan0?

来自分类Dev

Yii的无限滚动寻呼机扩展程序不显示寻呼机

来自分类Dev

Yii的无限滚动寻呼机扩展不显示寻呼机

来自分类Dev

AVFoundation-为什么我无法正确显示视频方向

来自分类Dev

为什么我的Mapbox GL无法正确显示图块?

来自分类Dev

为什么我在Android中的RecyclerView无法正确显示视图?

来自分类Dev

为什么我无法在Open CV中正确显示矩形?

来自分类Dev

为什么我的合成信号无法正确显示?的MATLAB

来自分类Dev

为什么我的JButton图标无法正确显示?

来自分类Dev

为什么我无法正确显示这些值?

来自分类Dev

使用自定义适配器的Listview搜索无法正确显示搜索结果

来自分类Dev

为什么我的代码无法正确加载?

来自分类Dev

适配器无法在Android上从JSON加载图像

来自分类Dev

为什么Firebase数据无法在我的Ember CLI生成的输出中正确显示?

来自分类Dev

为什么我的RecyclerView适配器不起作用?

Related 相关文章

  1. 1

    onCreateView寻呼机适配器

  2. 2

    我的片段状态寻呼机适配器中的空指针异常

  3. 3

    为什么我无法在适配器中接收数据

  4. 4

    如何为查看寻呼机选择适配器?

  5. 5

    为什么我的listView不显示适配器的列表?

  6. 6

    查看寻呼机未正确显示

  7. 7

    我已将 JSON 数据加载到对象中,但无法将它们连接到数组适配器以在多个微调器上显示它们

  8. 8

    Imageview无法通过ListView适配器正确显示

  9. 9

    我的蓝牙适配器本身会关闭,而我无法重新打开,为什么?

  10. 10

    为什么我无法从我的活动中调用适配器方法

  11. 11

    到达最后一项时,寻呼机适配器未注册

  12. 12

    视图寻呼机的无休止适配器概念

  13. 13

    视图寻呼机适配器中的回调更改为空对象

  14. 14

    为什么我的Recycler适配器/ Recycler视图没有连接到片段并且没有显示?

  15. 15

    为什么我的Wi-Fi适配器在16.04中没有显示为wlan0?

  16. 16

    Yii的无限滚动寻呼机扩展程序不显示寻呼机

  17. 17

    Yii的无限滚动寻呼机扩展不显示寻呼机

  18. 18

    AVFoundation-为什么我无法正确显示视频方向

  19. 19

    为什么我的Mapbox GL无法正确显示图块?

  20. 20

    为什么我在Android中的RecyclerView无法正确显示视图?

  21. 21

    为什么我无法在Open CV中正确显示矩形?

  22. 22

    为什么我的合成信号无法正确显示?的MATLAB

  23. 23

    为什么我的JButton图标无法正确显示?

  24. 24

    为什么我无法正确显示这些值?

  25. 25

    使用自定义适配器的Listview搜索无法正确显示搜索结果

  26. 26

    为什么我的代码无法正确加载?

  27. 27

    适配器无法在Android上从JSON加载图像

  28. 28

    为什么Firebase数据无法在我的Ember CLI生成的输出中正确显示?

  29. 29

    为什么我的RecyclerView适配器不起作用?

热门标签

归档