2011-08-12 8 views
0

databseから「MMM dd、yyyy HH:mm」にTimeフィールド(ミリ秒)を変換し、その結果をリストビューに昇順でリストする必要があります。私のリストビューに表示されるDateTime。 「私はDateTimeフィールドを表示することができ、今データベースからListViewに時間を変換する際に問題が発生しました

public Cursor getUserDateTimeLocations(long rowId) throws SQLException 
     { 
     Cursor mCursor = 
      db.query(true, DATABASE_TABLE_LOCATION, new String[] {KEY_ROWID, 
        KEY_LATITUDE, KEY_LONGITUDE, KEY_DATETIME,KEY_USERID,KEY_OBS}, KEY_USERID + "=" + rowId, null, 
        null, null, null, null); 
     if (mCursor != null) { 
      mCursor.moveToFirst(); 
     } 
     return mCursor; 
    } 

リストビューが、私は行ごとにフィールドを変換し、それを表示する必要があり、このIドン:

DB: はここで私が使用しているコードです

+0

http://stackoverflow.com/questions/6417550/android-format-timestamp-in-listview-with-cursor-adapter/6419338#6419338 –

+0

感謝。出来た!今私のクエリで昇順で日時を取得する方法に関する任意のアイデアですか?ありがとう。 – bond

答えて

0

あなたがする必要があるのは、CursorAdapterのsetViewTextをオーバーライドすることだけです。同じ問題を解決する私のコードの 数行:

private class MyCursorAdapter extends SimpleCursorAdapter { 

    public MyCursorAdapter(Context context, int layout, Cursor c, 
      String[] from, int[] to) { 
     super(context, layout, c, from, to); 

    } 

    private Date d = new Date(); 

    @Override 
    public void setViewText(TextView v, String text) { 
     if (v.getId() == R.id.TrackTime) { 
      d.setTime(Long.parseLong(text)); 
      text = d.toLocaleString(); 
     } 
     super.setViewText(v, text); 
    } 
} 
0

Hrmm、ユーザーが独自にアダプターをロールバックする必要がある場合がありますように見えます。 SimpleCursorAdapterは単なるDBのフィールドをある種のテキストビューにバインドする簡単な方法です。ウォークスルーについては、thisリンクを参照してください。

1

これがSimpleCursorAdapterの唯一の特別な部分である場合は、以下が役立ちます。あなたのsetListAdapterコールの前にこのコードを追加します。

locations.setViewBinder(new SimpleCursorAdapter.ViewBinder() { 

     @Override 
     public boolean setViewValue(final View view, final Cursor cursor, final int columnIndex) { 
      if (columnIndex == 1) { 
       TextView textView = (TextView) view; 

       long millis = cursor.getLong(columnIndex); 
       textView.setText(yourFormattingOfMillisToDateHere); 

       return true; 
      } 

      return false; 
     } 

    }); 
関連する問題