java.lang.IndexOutOfBoundsException: Invalid index 7, size is 7(java.lang.IndexOutOfBoundsException:索引 7 无效,大小为 7)
问题描述
我正在尝试实现视图寻呼机,在我的视图寻呼机图像来自服务器,我能够显示和滚动但是当我到达最后一张图像时它显示错误并且应用程序崩溃了,以下是我的代码段
I am trying to implement view pager,in my view pager images comes from server,I am able to display and scroll but when i reach at last image it shows error and app got crash,following is my snippet code
   public class Test_Pager extends Activity{
private String strtd;
String[] imgStr;
ImageView imageView;
ArrayList<String> userImgArrayList;
String[] myURLs;
/*country list*/
JSONArray country_list=null;
private ServiceHandler sh;
private String jsonStr;
private JSONObject jsonObj;
private String user_img;
private String user_pro;
private static String PROFILE_VIEW_URL = "";
private static final String USER_IMG="product_images";
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.test_pagerss);
    userImgArrayList = getIntent().getStringArrayListExtra("user_images");
    ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
       ImageAdapter adapter = new ImageAdapter(this);
       viewPager.setAdapter(adapter);
     imageView = (ImageView) findViewById(R.id.full_image_view);
     PROFILE_VIEW_URL="";
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
    sh = new ServiceHandler();
        // Making a request to url and getting response
        jsonStr = sh.makeServiceCall(PROFILE_VIEW_URL, ServiceHandler.GET);
        Log.d("Response: ", "> " + jsonStr);
     try {
         jsonObj = new JSONObject(jsonStr);
             /*proview_business = jsonObj.getString(PROFILE_VIEW_BUSINESS);
             proview_subcat = jsonObj.getString(PROFILE_VIEW_SUB_CATAGORY);
             proview_mainpro = jsonObj.getString(PROFILE_VIEW_MAINPRODUCTS);
             proview_expr = jsonObj.getString(PROFILE_VIEW_EXPERIENCE);
             proview_cmpname = jsonObj.getString(PROFILE_VIEW_COMPANYNAME);
             proview_website = jsonObj.getString(PROFILE_VIEW_WEBSITE);*/
            // user_img=jsonObj.getString(USER_IMG);
            user_img=jsonObj.getString(USER_IMG);
            user_img = "";
            userImgArrayList = new ArrayList<String>();//declare userImgArrayList globally like ArrayList<String> userImgArrayList;
            JSONArray picarray = jsonObj.getJSONArray(USER_IMG);
            for(int i=0;i< picarray.length();i++)
            {
                user_img = picarray.getString(i);
                userImgArrayList.add(user_img);
                Log.d("mylog", "curent  pro pic  = " + user_img);
            }
     } catch (JSONException e) {
         e.printStackTrace();
     }
}
public class ImageAdapter extends PagerAdapter {
     Context context;
      ImageAdapter(Context context)
     {
     this.context=context;
     }
      @Override
      public int getCount() {
      return USER_IMG.length();
      }
      @Override
        public void destroyItem(View container, int position, Object object) {
             ((ViewPager) container).removeView((View) object);
        }
     @Override
     public boolean isViewFromObject(View view, Object object) {
     return view == ((ImageView) object);
     }
     @Override
        public Object instantiateItem(ViewGroup container, int position) {
            ImageView imageView = new ImageView(context);
            int padding = context.getResources().getDimensionPixelSize(
                    R.dimen.activity_horizontal_margin);
            imageView.setPadding(padding, padding, padding, padding);
            //imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
            //Picasso.with(context).load(userImgArrayList.get(position)).into(imageView);
            Picasso.with(context).load(userImgArrayList.get(position)).resize(200, 200) .into(imageView);
            /*for(int i=0; i<myURLs.length;i++)
            { 
                try {
                    url = new URL(myURLs[i]);
                } catch (MalformedURLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                try {
                    bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                 imageView.setImageBitmap(bmp);
            }
            */
            // imageView.setImageURI(Uri.parse(imgStr[position]));
            ((ViewPager) container).addView(imageView, 0);
            return imageView;
        }
     }
  }
我的xml
        <RelativeLayout 
         android:layout_height="wrap_content"
         android:layout_width="wrap_content"
         android:background="@android:color/white"
         xmlns:android="http://schemas.android.com/apk/res/android">
       <ScrollView 
           android:layout_height="match_parent"
           android:layout_width="match_parent"
            android:layout_below="@+id/lnr"
            android:fillViewport="true"
                >
           <LinearLayout 
          android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:orientation="vertical" >
            <LinearLayout 
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
            android:orientation="vertical"
                 >
          <android.support.v4.view.ViewPager
      android:id="@+id/view_pager"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content" />
<ImageView android:id="@+id/full_image_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/></LinearLayout>
 <LinearLayout 
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/secondpart"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="5dp"
    >
      <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:shrinkColumns="*"  android:stretchColumns="*" >
       <TableRow
                        android:layout_height="wrap_content"
                        android:layout_width="wrap_content"
                        android:gravity="center_horizontal">
        <TextView 
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:text="Product Name"
            android:layout_marginLeft="5dp"
            android:textColor="@android:color/black"
            />
        <TextView 
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:id="@+id/txtageprofile"
            android:textColor="@android:color/black"
            android:layout_marginLeft="5dp"
            /></TableRow>
        <TableRow
                        android:layout_height="wrap_content"
                        android:layout_width="wrap_content"
                        android:gravity="center_horizontal"
                        android:paddingTop="5dp"
                        >
         <TextView 
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:text="Code"
            android:layout_marginLeft="5dp"
            android:textColor="@android:color/black"
            />
        <TextView 
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:id="@+id/txtheightprofile"
          android:textColor="@android:color/black"
          android:layout_marginLeft="5dp"
            /></TableRow>
         <TableRow
                        android:layout_height="wrap_content"
                        android:layout_width="wrap_content"
                        android:gravity="center_horizontal"
                        android:paddingTop="5dp"
                        >
         <TextView 
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:text="Purchase Rate"
            android:layout_marginLeft="5dp"
            android:textColor="@android:color/black"
            />
        <TextView 
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:id="@+id/txtmrgprofile"
            android:textColor="@android:color/black"
            android:layout_marginLeft="5dp"
            /></TableRow>
          <TableRow
                        android:layout_height="wrap_content"
                        android:layout_width="wrap_content"
                        android:gravity="center_horizontal"
                        android:paddingTop="5dp">
         <TextView 
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:text="Weight"
            android:layout_marginLeft="5dp"
            android:textColor="@android:color/black"
            />
         <TextView 
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:id="@+id/txtworkingprofile"
            android:textColor="@android:color/black"
            android:layout_marginLeft="5dp"
            /></TableRow>
           <TableRow
                        android:layout_height="wrap_content"
                        android:layout_width="wrap_content"
                        android:gravity="center_horizontal"
                        android:paddingTop="5dp"
                        >
         <TextView 
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:text="Sales Rate"
            android:layout_marginLeft="5dp"
            android:textColor="@android:color/black"
            />
         <TextView 
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:id="@+id/txtplaceprofile"
            android:textColor="@android:color/black"
            android:layout_marginLeft="5dp"
            /></TableRow>
            </TableLayout>
            </LinearLayout>
           <LinearLayout 
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/secondpart"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="5dp"
    >
            <TextView 
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_gravity="center_vertical|right"
            android:id="@+id/txteatprofile"
            android:textColor="@android:color/black"
            android:layout_marginLeft="5dp"
           android:layout_marginRight="5dp"
            />
            </LinearLayout>
      </LinearLayout>
      </ScrollView>
      </RelativeLayout>
推荐答案
USER_IMG.length(); 返回String的长度("的字符数产品图像").您应该返回数据集的大小.改变
USER_IMG.length(); returns the length of the String (the number of chars of "product_images"). You should return the size of the data set instead. Change
 @Override
 public int getCount() {
      return USER_IMG.length();
 }
到
 @Override
 public int getCount() {
      if (userImgArrayList == null) {
         return 0;
      } 
      return userImgArrayList.size();
 }
                        这篇关于java.lang.IndexOutOfBoundsException:索引 7 无效,大小为 7的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:java.lang.IndexOutOfBoundsException:索引 7 无效,大小为 7
				
        
 
            
        - UITextView 内容插图 2022-01-01
 - 类似于 Mail.app 的 iPad 模态视图控制器? 2022-01-01
 - 网上有没有好的 UIScrollView 教程? 2022-01-01
 - GPS状态的广播接收器? 2022-01-01
 - URL编码Swift iOS 2022-01-01
 - 在 Iphone SDK 的导航栏上添加多个按钮 2022-01-01
 - Xcode 7.3 中带有 UILabel 的 UIStackView 2022-01-01
 - 如何在 iPhone 模拟器中重置 NSUserDefaults 数据? 2022-01-01
 - SetOnItemSelectedListener上的微调程序错误 2022-01-01
 - 使用自动布局向 UIScrollView 添加动态大小的视图 2022-01-01
 
