This is my first sharing. Please help me. I think problem is an array overflow but everything is right in the code. Program is not run. Crash after close. Thank you for helping.
這是我第一次分享。請幫助我。我認為問題是數組溢出,但是代碼中一切都是正確的。程序不運行。崩潰后關閉。謝謝你的幫助。
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=1; index=6
at com.teornek.ehliyetsinavi.MainActivity.soruDosyasiOku(MainActivity.java:71) at com.teornek.ehliyetsinavi.MainActivity.onCreate(MainActivity.java:53)
This is the method that crashes:
這是崩潰的方法:
private void soruDosyasiOku() {
InputStream stream = getResources().openRawResource(R.raw.ehliyet);
BufferedReader reader = new BufferedReader(new InputStreamReader(stream, Charset.forName("UTF-16")));
Soru yeniSoru;
String soru = null;
sorular = new ArrayList();
try {
while ((soru = reader.readLine()) != null) {
String [] soruIcerik;
soruIcerik = soru.split(";");
String konu = soruIcerik[0];
String dogru = soruIcerik[6]; **//THIS IS (MainActivity.java:71)**
if ((konu.equals("T") || konu.equals("M") || konu.equals("Y")) &&
(dogru.equals("A") || dogru.equals("B") || dogru.equals("C") || dogru.equals("D"))) {
yeniSoru = new Soru(soruIcerik[0], soruIcerik[1], soruIcerik[2],
soruIcerik[3], soruIcerik[4], soruIcerik[5], soruIcerik[6]);
sorular.add(yeniSoru);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
soru = (TextView) findViewById(R.id.soru);
soru.setEnabled(false);
cevap1 = (Button) findViewById(R.id.cevap1);
cevap2 = (Button) findViewById(R.id.cevap2);
cevap3 = (Button) findViewById(R.id.cevap3);
cevap4 = (Button) findViewById(R.id.cevap4);
Button konular = (Button) findViewById(R.id.konular);
Button sinaviBaslat = (Button) findViewById(R.id.sinaviBaslat);
cevap1.setOnClickListener(cevapTikla);
cevap2.setOnClickListener(cevapTikla);
cevap3.setOnClickListener(cevapTikla);
cevap4.setOnClickListener(cevapTikla);
konular.setOnClickListener(konularTikla);
sinaviBaslat.setOnClickListener(sinaviBaslatTikla);
soruDosyasiOku(); **//THIS IS (MainActivity.java:53)**
tercihleriOku();
sinaviBaslat();
}
1 个解决方案
#1
0
soruIcerik = soru.split(";");
if (soruIcerik.length == 7) {
String konu = soruIcerik[0];
String dogru = soruIcerik[6]; **//THIS IS (MainActivity.java:71)**
if ((konu.equals("T") || konu.equals("M") || konu.equals("Y")) &&
(dogru.equals("A") || dogru.equals("B") || dogru.equals("C") || dogru.equals("D"))) {
yeniSoru = new Soru(soruIcerik[0], soruIcerik[1], soruIcerik[2],
soruIcerik[3], soruIcerik[4], soruIcerik[5], soruIcerik[6]);
sorular.add(yeniSoru);
}
}