2016-06-25 9 views
-2

RecyclerViewを最後までスクロールすると、java.lang.ArrayIndexOutOfBoundsException:length = 9;が返されます。インデックス= 9エラー。アダプターに画像を提供する10のリンクがあります。 android_image_urls.lengthを使用しても同じエラーに配列外のインデックス

public class MyHorizontalAdapter extends RecyclerView.Adapter<MyHorizontalAdapter.ViewHolder> {**//line 31** 
public List<Notes> dataset= new ArrayList<>(); 
public Context context; 
private final String android_image_urls[] = {//10 image urls 
}; 
private final String note_title[] = { 
     "Physics", "ElectroMagnetics", "DSA", "Electrical", "Electrical Machine", "Numerical Method" 
     , "Digital Logic", "EDC", "ECT"}; 
private final String note_author[] = {"hari", "ram", "shyam", "binod", "ghanshyam", "BP", "RP", "NPA", "IB", "TS"}; 
private final String download[] = {"10", "11", "23", "54", "45", "34", "32", "56", "12", "12"}; 

public List<Notes> add() { 

    for (int i = 0; i < 9; i++) { 
     Notes notes = new Notes(android_image_urls[i], note_title[i], note_author[i], download[i]); 
     dataset.add(notes); 
     //Toast.makeText(Most_loved.this, String.valueOf(dataset.size()), Toast.LENGTH_SHORT).show(); 

    } 
    return dataset; 
} 

public MyHorizontalAdapter(Context context, List<Notes> dataset) { 
    this.context = context; 
    this.dataset = dataset; 
} 

@Override 
public MyHorizontalAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View v = LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.horizontal_item, parent, false); 
    ViewHolder vh = new ViewHolder(v); 
    return vh; 
} 

@Override 
public void onBindViewHolder(ViewHolder holder, final int position) { 

    Picasso.with(context).load(android_image_urls[position]) 
      .placeholder(R.drawable.ic_menu_gallery).fit().into(holder.randomImageView);**//line 79** 
    holder.title.setText("Title: "+ note_title[position]); 
    holder.author.setText("Author: " + note_author[position]); 
    holder.downloads.setText("Downloads: " +download[position]); 

} 

を与えるエラー:

06-25 21:23:46.032 8498-8498/com.example.zaraki.ioenote  E/AndroidRuntime: FATAL EXCEPTION: main 
                     Process: com.example.zaraki.ioenote, PID: 8498 
                     java.lang.ArrayIndexOutOfBoundsException: length=10; index=10 
                      at com.example.zaraki.ioenote.RecyclerView.MyHorizontalAdapter.onBindViewHolder(MyHorizontalAdapter.java:79) 
                      at com.example.zaraki.ioenote.RecyclerView.MyHorizontalAdapter.onBindViewHolder(MyHorizontalAdapter.java:31) 
                      at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5471) 
                      at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5504) 
                      at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4741) 
                      at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617) 
                      at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1994) 
                      at android.support.v7.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:528) 
                      at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353) 
                      at android.support.v7.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1180) 
                      at android.support.v7.widget.LinearLayoutManager.scrollHorizontallyBy(LinearLayoutManager.java:1019) 
                      at android.support.v7.widget.GridLayoutManager.scrollHorizontallyBy(GridLayoutManager.java:361) 
                      at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:4057) 
                      at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) 
                      at android.view.Choreographer.doCallbacks(Choreographer.java:580) 
                      at android.view.Choreographer.doFrame(Choreographer.java:549) 
                      at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753) 
                      at android.os.Handler.handleCallback(Handler.java:739) 
                      at android.os.Handler.dispatchMessage(Handler.java:95) 
                      at android.os.Looper.loop(Looper.java:135) 
                      at android.app.ActivityThread.main(ActivityThread.java:5910) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:372) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200) 
+0

いただきまし実装を引くのを忘れfinal int positionあなたが渡しているが、10未満であることを確認してください? – Rockney

答えて

0

あなたnote_title配列だから、インデックス9が無効であるだけで9エントリではなく、10が含まれています。

+0

与えられたエントリを追加したとき java.lang.ArrayIndexOutOfBoundsException:length = 10;インデックス= 10。ありがとうございました –

+0

完全なエラーメッセージ(行番号のスタックトレース)を投稿してください。 – xvlcw

+0

あなたが尋ねたとおりに行われました。それを確認してください。 –

0

指定したコードから、配列のインデックスがコントロール内にない唯一の時間は、onBindViewHolderです。

は、私はいくつかの点であなたがarray.length呼ばれてきたかもしれない疑いがあると、あなたのアダプタでgetItemCountのMethodeのの1

+0

はどこですか?私はあなたを得ることができませんでした! –

+0

他のコードで 'onBindViewHolder'を呼び出しますか?あなたは範囲外の「位置」を渡しました。代わりに、ifステートメントを使用して、 'position Yidna

+0

実際には、horizo​​ntal recyclerviewは、垂直リサイクラビューを親リサイクラビューとしてネストされたリサイクラビューの一部です。したがって、リサイクルビューには** onBindViewHolder **もあります。 –

関連する問題