마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

listHref.get(position); 문이 오류가 나는 이유가 무엇일까요?

0 추천

제 소스의 일부입니다.

이 소스는 리스트뷰의 아이템이 눌렸을 때, ArrayList, listHref의 아이템순서의 정보를 인텐트로 넘녀주는 소스인데

board.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Intent intent=new Intent(MainActivity.this, ContentActivity.class);
        intent.putExtra("href", listHref.get(position));
        startActivity(intent);
    }
});

 listHref.get(position)부분에서 에러가 나는 것을 확인하였고

에러 메세지는 아래와 같습니다.

                                       java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0

                                                                                   at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
                                                                                   at java.util.ArrayList.get(ArrayList.java:304)
                                                                                   at com.example.jeong_woochang.fans.MainActivity$4.onItemClick(MainActivity.java:406)
                                                                                   at android.widget.AdapterView.performItemClick(AdapterView.java:298)
                                                                                   at android.widget.AbsListView.performItemClick(AbsListView.java:1086)
                                                                                   at android.widget.AbsListView$PerformClick.run(AbsListView.java:2859)
                                                                                   at android.widget.AbsListView$1.run(AbsListView.java:3533)
                                                                                   at android.os.Handler.handleCallback(Handler.java:615)
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:92)
                                                                                   at android.os.Looper.loop(Looper.java:137)
                                                                                   at android.app.ActivityThread.main(ActivityThread.java:4745)
                                                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                   at java.lang.reflect.Method.invoke(Method.java:511)
                                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
                                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
                                                                                   at dalvik.system.NativeStart.main(Native Method)

 

프로그래밍잘하고싶은나 (390 포인트) 님이 2018년 1월 30일 질문

1개의 답변

+1 추천
 
채택된 답변
listHref 에 들어가 있는 데이터가 한개도 없는데

listHref.get(position)  로 listHref  의 Position(0) 인덱스에 있는 데이터를 꺼내려 해서

IndexOutOfBoundsException 가 발생했습니다.

listHref 의 사이즈가 Position 보다작을 때의 예외 처리를 넣어주셔야 할 듯 합니다.
익명사용자 님이 2018년 1월 30일 답변
프로그래밍잘하고싶은나님이 2018년 1월 31일 채택됨
...