如何将文本发送到服务器并使用齐射和json获取数组

问题描述 投票:0回答:1

我想向服务器发送名称,并从服务器获取一些图像并将图像放入图像滑块。

我写此代码

private void getrequest(){

    StringRequest stringRequest=new StringRequest(Request.Method.POST, "http://192.168.43.112/image/items_slider/getdata.php",
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Toast.makeText(SelectItemsActivity.this, "boa entrou",
                            Toast.LENGTH_LONG).show();
                    try {
                        JSONArray array=new JSONArray(response);
                        for (int i=0; i < array.length(); i++) {
                            JSONObject jo=array.getJSONObject(i);

                            SliderUtils sliderUtils = new SliderUtils();


                            sliderUtils.setSliderImageUrl(jo.getString("game_image"));

                            sliderImg.add(sliderUtils);
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                    viewPagerAdapter = new ViewPagerAdapter(sliderImg, SelectItemsActivity.this);

                    viewPager.setAdapter(viewPagerAdapter);
                    dotscount = viewPagerAdapter.getCount();
                    dots = new ImageView[dotscount];

                    for (int i = 0; i < dotscount; i++) {

                        dots[i] = new ImageView(SelectItemsActivity.this);
                        dots[i].setImageDrawable(ContextCompat.getDrawable(getApplicationContext(), R.drawable.nonactive_dot));
                        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);

                        params.setMargins(8, 0, 8, 0);

                        sliderDotspanel.addView(dots[i], params);

                    }

                    dots[0].setImageDrawable(ContextCompat.getDrawable(getApplicationContext(), R.drawable.active_dot));

                    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
                        @Override
                        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

                        }

                        @Override
                        public void onPageSelected(int position) {

                            for (int i = 0; i < dotscount; i++) {
                                dots[i].setImageDrawable(ContextCompat.getDrawable(getApplicationContext(), R.drawable.nonactive_dot));
                            }
                            dots[position].setImageDrawable(ContextCompat.getDrawable(getApplicationContext(), R.drawable.active_dot));

                        }

                        @Override
                        public void onPageScrollStateChanged(int state) {

                        }
                    });

                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(SelectItemsActivity.this, "erro erro",
                            Toast.LENGTH_LONG).show();
                }
            }) {
        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params=new HashMap<String, String>();

            params.put("name", name);


            return params;
        }

    };
    rq = Volley.newRequestQueue(SelectItemsActivity.this);
    rq.add(stringRequest);
}

dot [] =这是滑块底部的用于显示多个图像的点

sliderDotspanel =这是显示点的LinearLayout

sliderImg =这是一个列表

并写入此错误

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.avm.myapplication, PID: 14867
java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
    at com.avm.gamestore.SelectItemsActivity$5.onResponse(SelectItemsActivity.java:386)
    at com.avm.gamestore.SelectItemsActivity$5.onResponse(SelectItemsActivity.java:347)
    at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:78)
    at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30)
    at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:106)
    at android.os.Handler.handleCallback(Handler.java:790)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:7000)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)

并从中得到错误

dots[0].setImageDrawable(ContextCompat.getDrawable(getApplicationContext(), R.drawable.active_dot));

请帮助我,这对我非常重要

android arrays json android-volley
1个回答
0
投票
java.lang.ArrayIndexOutOfBoundsException: length=0; index=0

由于错误为ArrayIndexOutOfBoundsException,这意味着生成的数组大小为零。您应该在邮递员或任何其他平台上检查此api,以确认是否确实产生了数组。

© www.soinside.com 2019 - 2024. All rights reserved.