0

我正在尝试将数据从 csv 文件中提取到一个数组中,然后在列表视图中显示该数组。我快到了(经过大量搜索/谷歌时间......Java / android新手),但无法弄清楚我做错了什么。

我有一个正在加载的文本文件,然后我将内容提取到一个名为 splitdata 的字符串数组中。我希望 splitdata 数组显示在列表视图中。

我的代码是:

   try {
    File myFile = new File("/sdcard/file.txt");
    FileInputStream fIn = new FileInputStream(myFile);
    BufferedReader myReader = new BufferedReader(
            new InputStreamReader(fIn));
    String aDataRow = "";
    String aBuffer = "";
    while ((aDataRow = myReader.readLine()) != null) {
        aBuffer += aDataRow + "\n";
    }

    //      String loadeddata = aBuffer;
    String[] splitdata = aBuffer.split(",");

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.grid_item, splitdata);

    adapter.clear();
    adapter.addAll(splitdata);
    lvlogbook.setAdapter(adapter);
            myReader.close();

当我加载活动时,我只会显示空白列表视图。请得到很好的帮助(我已经在文本视图中测试了数组,并且我想要的数据被分离出来,我认为问题在于我如何尝试用我的数据填充适配器)。

感谢您的任何帮助。

安迪

4

2 回答 2

0

这是我正在调用的 grid_item.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >


      <TextView android:id="@+id/item1"
            android:text="row_id"
            android:layout_height="fill_parent"
            android:layout_width="wrap_content"
            android:width="300dip"
            android:textColor="#ffffff"
            android:textSize="20dp"
            android:textStyle="bold"
        />
        <TextView android:id="@+id/item2"
            android:text="col_1"
            android:layout_height="fill_parent"
            android:layout_width="wrap_content"
            android:width="180dip"
            android:textColor="#ffffff"
            android:textSize="20dp"
            android:textStyle="bold"
        />
        <TextView android:id="@+id/item3"
            android:text="col_2"
            android:layout_height="fill_parent"
            android:layout_width="wrap_content"
            android:width="180dip"
            android:textColor="#ffffff"
            android:textSize="20dp"
            android:textStyle="bold"
        />
        <TextView android:id="@+id/item4"
            android:text="col_3"
            android:layout_height="fill_parent"
            android:layout_width="wrap_content"
            android:width="100dip"
            android:textColor="#ffffff"
            android:textSize="20dp"
            android:textStyle="bold"
        />

</LinearLayout>

当我使用列表视图加载活动时,我得到的只是我必须捕获异常的吐司弹出窗口。我很困惑为什么我的列表视图不起作用。我错过了什么?如果我在适配器上注释掉适配器 clear 和适配器 addAll ,那么活动只会在启动时崩溃(意外停止)。

于 2012-11-11T22:21:32.923 回答
0

很可能您没有具有 ArrayAdapter 默认期望的特定 id 的 TextView。

尝试默认布局:

new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, splitdata);

或尝试提供您的 TextView 的实际 ID 的另一个构造函数,例如

new ArrayAdapter<String>(this, R.layout.grid_item, R.id.YOURTEXTVIEWID, splitdata);
于 2012-11-11T14:58:32.340 回答