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

ほとんどの場合、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 に答える
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>

リストビューを使用してアクティビティをロードしたときに得られるのは、例外をキャッチする必要があるトーストポップアップだけです。リストビューが機能しない理由がわかりません。私は何を逃したのですか?アダプターのクリアとアダプターの addAll をコメントアウトすると、起動時にアクティビティがクラッシュします (予期せず停止します)。

于 2012-11-11T22:21:32.923 に答える