我想向服务器发送名称,并从服务器获取一些图像并将图像放入图像滑块。
我写此代码
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));
请帮助我,这对我非常重要
java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
由于错误为ArrayIndexOutOfBoundsException,这意味着生成的数组大小为零。您应该在邮递员或任何其他平台上检查此api,以确认是否确实产生了数组。