3

データベースから文字列を取得して ListView に配置するアプリがあります。これは、データベースから文字列を取得するためのコードです:

    public void setLogView(String date){


    ArrayAdapter<TextView> adapter = new ArrayAdapter<TextView>(this, android.R.layout.simple_list_item_1);
    listView.setAdapter(adapter);

    DataBaseMain dataBase = new DataBaseMain(this);
    dataBase.open();
    String[][] all = dataBase.dayLog(date);
    dataBase.close();

    if(all == null)
        return;

String temporay = "";

    for(int j = 0; j < all[0].length; j++){
            temporay = "";  
        for (int i = 0; i < all.length; i++){
            TextView text = new TextView(this);
            temporay = temporay + " " + all[i][j];
            text.setText(temporay);
            adapter.add((TextView)text);
            }
        }   
}

ListView で新しい TextView を取得したようですが、テキストがめちゃくちゃです。temporayストリングをチェックしましたが、問題ありません。彼をListViewに入れることのどこかにあります。logcat または例外にエラーはありません。これが、アプリの ListView で取得したもので、必要なテキストが挿入されています。

ここに画像の説明を入力

4

4 に答える 4

1

そこで、あなたが提供した画像から明らかになります

これを試して..

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
    listView.setAdapter(adapter);

提供する String の代わりに textView オブジェクトを追加するアダプタ。

次に、ループ内に textView の代わりに temporay を追加します。

 adapter.add(temporay);

これは、確かにあなたの問題を解決します。

于 2013-05-08T10:08:06.040 に答える
0

アダプターを に変更し、リストビュー全体の代わりにArrayAdapter<String>追加します。temporay

または、ArrayAdapter を拡張してオーバーライドすることもできます。getView()

于 2013-05-08T06:13:02.543 に答える