2014-11-14 71 views
0

我有一個只有一列值的csv文件。我想從每一行取這些值,並使用OpenCSV將它們顯示在單獨的TextView中。我的代碼是這樣的:如何使用OpenCsv讀取csv文件並將值設置爲TextView?

try { 
     CSVReader reader = new CSVReader(new FileReader(csvInPath)); 
     String [] row; 
     while ((row = reader.readNext()) != null) { 
      tvN[1].setText(row[1].toString()); 
     } 
     reader.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

它讓我在logcat的一個ArrayIndexOutOfBoundsException錯誤和應用程序強制關閉。 有人可以告訴我我做錯了什麼,如何做到這一點?謝謝。

+0

然後發佈logcat。什麼是tvN?什麼是tvN [1]?在循環中使用tvN [1]是沒有意義的。你是指tvN [i]還是這樣的?如果只有一個圓柱,那麼行[1]不存在。改用row [0]。 – greenapps 2014-11-14 17:02:58

+0

哦!我的印象是OpenCSV逐行閱讀,即。行[0]代表第一行,行[1]代表第二行等。我猜它讀取列? – SoulSlayerAbad 2014-11-14 17:27:11

+0

那麼readNext會返回什麼?多久可以調用一次?你可以很容易地找到。我認爲每次都會有一排蘆葦。但這只是我的猜測。你可以找到。如果String row []代表一行,那麼row [0]是第一個(也是唯一的)列表。所以你最好把它命名爲String collumns []。 – greenapps 2014-11-14 17:36:14

回答

0

正如greenapps指出的那樣,我參考了不存在的行[1],因爲我只有列的值。原來,OpenCSV逐列讀取csv文件,由於我只有1列,我不得不使用row [0],或者讓我的csv有多個列。即: 我的csv文件:

  1. 名1
  2. 名稱2
  3. 名稱3

我應該使用什麼: 1.姓名2.名稱2 3 NAME3

它爲了避免混淆,最好將row []重命名爲column []。

相關問題