オプション1:@nguyendat同様のパフォーマンスのために、あなたはあなたの最も柔軟性を提供するために、データベースでフォーマットされた日付と同様に、非フォーマットされたバージョンを格納することができ、と述べました。しかし、同じテーブルでは、これは冗長性のために2番目の正規形に違反するため、行内のすべてのデータを更新するためにコードを慎重にする必要があります。 これを実装するには、DBAdapterのinsertコマンドで変換コードを入力します。
オプション2:あなたの日付
public class FormattedDate {
private int oneDate;
public Punch (int unformattedDate) {
oneDate = unformattedDate;
} // ends constructor
@Override
public String toString() {
//put your conversion code here
return myFormattedDate;
}}
のためのクラスを作成し、この比較や変換のための他の任意のコードを配置する適切な場所の追加の利点を持っています。あなたのDBAdapterインサイド
、この
public ArrayList<FormattedDate> fetchAllItems() {
ArrayList<FormattedDate> results = new ArrayList<FormattedDate>();
Cursor c = db.rawQuery("SELECT MY_UNFORMATTED_DATE FROM yourTable", null);
if (c.getCount() > 0) {
c.moveToFirst();
do {
results.add(new FormattedDate(c.getInt(c.getColumnIndex(MY_UNFORMATTED_DATE))));
} while (c.moveToNext());
}
c.close();
return results;
}
にあなたのクエリを変更する。これは、FormattedDateのArrayListのを返します。最後に、これはリストビュー
setContentView(R.layout.my_list_view);
ArrayList<FormattedDate> dateArray = mDBHelper.fetchAllItens();
ArrayAdapter<FormattedDate> dateAdapter = new ArrayAdapter<FormattedDate> (getApplicationContext(), R.layout.list_item, dateArray);
setListAdapter(dateAdapter);
ない答えが、改善のために移入う
オブジェクトパフォーマンス、私はより良いデータを保存するときに時間形式を変換するのではなく、データベースからデータを読み込むたびに変換することをお勧めします。 – NguyenDat
私はデータベースに "2011年7月27日"として日付を保存するのではなく、 "20110727"(YYYYMMDD)のようなものを使いたいと思っています。他のフォーマットもあります。 – Assim