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

IndexOutOfBoundsException 오류가 납니다.

0 추천

IndexOutOfBoundsException: 오류가 납니다.

IndexOutOfBoundsException: Invalid index 6, size is 6개 까지는 커스텀 리스트뷰가 잘 나오는데

7번째 아이템을 누르면 앱이 종료가 됩니다.

그래서 로그를 찍어봤더니 7개까지 만들어 졌는데 안되는게 이상하더라구요..

왜 이렇게 된건지 이해가 안돼서, 다른 클래스를 만들어서 intent 시켜봤더니 되더라구요.

MainActivity 코딩이 아닌, 새로 짠 클래스에 코딩이 잘못된것 같단 생각이 들었어요.

그런데 제 문제점을 잘 못찾겠습니다..

혹시 확인 한번 부탁드릴게요!

 

    Spinner f2Spinner = (Spinner) findViewById(R.id.f2); //스피너 설정
    ArrayAdapter f2Adapter = ArrayAdapter.createFromResource(this, R.array.f2, android.R.layout.simple_spinner_item);
    f2Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    f2Spinner.setAdapter(f2Adapter);
    f2Spinner.setSelection(6);

    Spinner t2Spinner = (Spinner) findViewById(R.id.t2);
    ArrayAdapter t2Adapter = ArrayAdapter.createFromResource(this, R.array.t2, android.R.layout.simple_spinner_item);
    t2Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    t2Spinner.setAdapter(t2Adapter);
    t2Spinner.setSelection(6);

    Spinner v2Spinner = (Spinner) findViewById(R.id.v2); //스피너 설정
    ArrayAdapter v2Adapter = ArrayAdapter.createFromResource(this, R.array.v2, android.R.layout.simple_spinner_item);
    v2Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    v2Spinner.setAdapter(v2Adapter);
    v2Spinner.setSelection(3);

    Spinner x2Spinner = (Spinner) findViewById(R.id.x2);
    ArrayAdapter x2Adapter = ArrayAdapter.createFromResource(this, R.array.x2, android.R.layout.simple_spinner_item);
    x2Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    x2Spinner.setAdapter(x2Adapter);
    x2Spinner.setSelection(6);

}

public void onButton20Clicked(View v) {
    double num3 = F1;
    double num4 = T1;
    double num5 = X1;

    if (editText60.getText().length() == 0 & editText61.getText().length() == 0 & editText62.getText().length() == 0 & editText63.getText().length() == 0) {
        Toast.makeText(getApplicationContext(), "숫자를 입력해 주세요.", Toast.LENGTH_LONG).show();
    }
    {
        if (editText60.getText().length() >= 1 & editText61.getText().length() == 0 & editText62.getText().length() >= 1 & editText63.getText().length() == 0) {

            double num1 = Double.parseDouble(editText60.getText().toString())*num3;  //f
            double num2 = V1;

            double t = (1/num1)*num4; //주기
            editText61.setText(Double.toString(t));

            double x = (num2/num1)*num5; //파장
            editText63.setText(Double.toString(x));
        }else if(editText60.getText().length() ==0 & editText61.getText().length() >=1 & editText62.getText().length() >=1 & editText63.getText().length()==0) {

            double num1 = Double.parseDouble(editText61.getText().toString())*num4; //T
            double num2 = V1;

            double f = (num1/1)*num3; //주파수
            editText60.setText(Double.toString(f));

            double x = (num2/f)*num5;
            editText63.setText(Double.toString(x));
        }else if(editText60.getText().length() ==0 & editText61.getText().length()==0 & editText62.getText().length() >= 1 & editText63.getText().length()>=1) {
            double num1 = Double.parseDouble(editText63.getText().toString())*num5; //X
            double num2 = V1;

            double f = (num2/num1)*num3;
            editText60.setText(Double.toString(f));

            double t = (1/f)*num4;
            editText61.setText(Double.toString(t));
        }
    }
}
public void onButton22Clicked(View v) {
    if (editText60.getText().length()!=0 & editText61.getText().length() !=0 & editText62.getText().length() >=1 & editText63.getText().length() !=0 ) {
        editText60.setText(null);
        editText61.setText(null);
        editText63.setText(null);
    }
}
}
이 코딩에 문제가 있는지좀 확인해주세요ㅠㅠ
후니02 (820 포인트) 님이 2015년 11월 24일 질문

1개의 답변

+1 추천

IndexOutOfBoundsException: Invalid index 6, size is 6

이 로그 자체가 6개 밖에 없는데 7번째를 지정했다는 말입니다. 7번째가 생성됐다고 생각하신 게 잘못된 것 같습니다.

전체 로그를 첨부해주시지 않고 딱 저 한줄만 보여주시면 다른 사람이 알 도리가 없습니다.

첨부해주신 소스의 어느 부분에서 에러가 났는지도 알 수 없습니다. (코드를 봤을 땐, 첨부해주신 부분과 에러는 관계 없어 보입니다)

7번째가 왜 생성이 안됐는지 디버깅해보시기 바랍니다.

cc1232 (35,280 포인트) 님이 2015년 11월 24일 답변
...