2014-11-14 70 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 []。

相关问题