0

SimpleCursorAdaptor と ListView を使用して、SQLite データベースの行に値を表示しています。私の行の値の 1 つは日付 (列「日付」) です。この日付を表示するのではなく、日付に基づいて別の文字列を返すメソッドを使用してこれを実行する必要があります。これは、データベースから直接取得した実際の値ではなく、リストに表示したい値です。

つまり、表示する前に変更する必要がある 1 つを除いて、データベース テーブルの行からすべての値を表示したいと考えています。

これが私のコードです:

public class BinCollectionDayListActivity extends ListActivity{
    //
    private static final String fields[] = { "name", "date", BaseColumns._ID };
    //
    public void onCreate(Bundle savedInstanceState) {
        //
        super.onCreate(savedInstanceState);
        //
        DatabaseHelper helper = new DatabaseHelper(this);
        SQLiteDatabase database = helper.getWritableDatabase();
        Cursor data = database.query("names", fields, null, null, null, null, null);
        CursorAdapter dataSource = new SimpleCursorAdapter(this, R.layout.binrow, data, fields, new int[] { R.id.name, R.id.date });
        dataSource.getCursor().requery();
        //
        ListView view = getListView();
        view.setHeaderDividersEnabled(true);
        setListAdapter(dataSource);
        //
        helper.close();
        database.close();
    }
}

おわかりのように、私は Android 開発にかなり慣れていないので、望ましい結果を達成するための最善のアプローチを知りたいと思っています。

前もって感謝します、

トニー

4

1 に答える 1

0

以前に使用した2つのオプション:

Array Adapter (推奨) : ArrayAdapter を作成し、Cursor データを ArrayAdapter に入力します。 http://anujarosha.wordpress.com/2011/11/17/how-to-create-a-listview-using-arrayadapter-in-android/

ViewBinder : Cursor で、マップされようとしているデータをチェックし、それにいくつかのロジックを実行し、必要に応じて別の結果を吐き出すことができる ViewBinder をセットアップ/指定できます。これはおそらくまさにあなたが探しているものですが、ArrayAdapter を検討してください。より適切に制御できる傾向があり、後でこれらを切り替えるのは面倒です。 SimpleCursorAdapter を使用して Cursor から値を変更する

于 2012-04-24T13:51:55.037 に答える