나는 안드로이드를 배우고 있으며, GridView example doc을 거친 후 온라인 이미지를 사용하기 위해 예제를 수정할 수 있는지보고 싶습니다. 내가피카소와 GridView를 사용할 때 ArrayndexOutOfBounds
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
// if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(300, 300));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
Picasso
.with(mContext)
.load(imageUrls[position])
.into(imageView);
return imageView;
}
private String[] imageUrls = {
"http://image.tmdb.org/t/p/w185/5N20rQURev5CNDcMjHVUZhpoCNC.jpg",
"http://image.tmdb.org/t/p/w185/e1mjopzAS2KNsvpbpahQ1a6SkSn.jpg",
};
그러나,이 반환 아래에 예제 코드를 수정 한 java.lang.ArrayIndexOutOfBoundsException : 길이 = 2; 색인 = 2 오류.
예제 코드에서 원래 배열은 정수 배열이라는 것을 알고 있습니다. 그것이 문제일까요? 그렇다면, R.drawable.sample_
개체가 정수 유형이되는 방식을 이해할 수 없습니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까?
편집 :
그래서 좀 더 그와 함께 연주 후, 그것은 충돌하지의 배열 순서대로 적어도 22 링크를 포함해야 함을 나타납니다. 배열에 21 이하 만 포함되어 있으면 앱에 오류가 다시 표시됩니다. 이 gridview가 적어도 22 개의 객체를 갖도록 제한하는 이유가 있습니까?
예제 코드를 그대로 사용하면 오류없이 원하는만큼 많은 요소를 가질 수 있기 때문에 이것은 흥미 롭습니다.
Logcat 전체를 추가하고 Logcat이 의미하는 줄을 표시 – Zoe
Logcat은이 줄'com.testapp.ImageAdapter.getView (ImageAdapter.java:51)'가 ' Picasso.with (mContext)'. – user3277633
두 개 이상의보기가 있습니까? 그렇다면 위치가 2, 3 등이 될 수 있으므로 indexoutofbounds 예외가 발생하는 것은 당연한 것입니다. – Zach