簡體   English   中英

Android:在文本文件中填充微調器

[英]Android: fill spinner with items in text file

我希望填充微調器在我的主機上的文本文件中的項目。 文本文件內容以“\\ n”字符分隔:

Afghanistan
Albania
Algeria
Andorra
Angola

我寫這段代碼,但我有這個錯誤:

03-10 12:32:07.716: E/AndroidRuntime(7670): 
FATAL EXCEPTION: Thread-69056
03-10 12:32:07.716: 

E/AndroidRuntime(7670): 
java.lang.ArrayIndexOutOfBoundsException: 
length=91; index=91

                    bo.write(buffer);
                    String s = bo.toString();

                    final Vector<String> str = new Vector<String>();
                    String[] line = s.split("\n");
                    int index = 0;
                    while (line[index] != null) {
                        str.add(line[index]);
                        index++;
                    }

你需要改變條件..用這個:

while (line[index] != null) {
   str.add(line[index]);
   index++;
}

如果說行的大小是10,則index ++將使它成為11.因此,行[11]不會為null,而是拋出一個ArrayIndexOutOfBoundsException

將條件更改為:

for(int i=0;i<line.length;i++) {
    if(line[i] != null) {
       str.add(line[index]);
    }
}

您需要在for循環中檢查String數組的長度

for(int i=0;i<line.length;i++) {
if(line[i] != null) {
   str.add(line[index]);
}
}

將代碼更改為:

bo.write(buffer);
String s = bo.toString();
final Vector<String> str = new Vector<String>();
String[] line = s.split("\n");
int index = 0;
while (index < line.length) {
str.add(line[index]);
index++;
}

您將獲得java.lang.ArrayIndexOutOfBoundsException因為您沒有對行數組進行綁定檢查。

它應該是:

int index = 0, length = line.length;
while (index < length) {
   str.add(line[index++]);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM