2016-04-17 21 views
0

私はアンドロイドの未経験者です。私のToDoアプリケーションに問題があります。すべて表示する私のリストビューが保存された瞬間に 日付と時刻でリストをソート

のToDoの日付のみの最初の2桁(日!)でソートされますが、日付がこの形式で保存されている:「DD.MM.YYYY」

マイターゲットは、リストビューを日付(ToDoTable.COLUMN_TODO_START)と時刻(ToDoTable.COLUMN_TIME_START)で昇順に並べ替えることです。誰かが両方の基準(日付と時刻)でリストをソートするために、特にポイントにこの問題で私を助けることができる場合、私は非常に感謝される

public void fillData() { 
    String[] from = new String[] { ToDoTable.COLUMN_TODO_NAME, ToDoTable.COLUMN_TODO_PLACE, ToDoTable.COLUMN_TODO_START, ToDoTable.COLUMN_TODO_END }; 
    int[] to = new int[] { R.id.todo_name, R.id.todo_place, R.id.todo_start }; 
    getLoaderManager().initLoader(0, null, this); 
    adapter = new SimpleCursorAdapter(this, R.layout.todo_row_test2, null, from, 
      to, 0); 
    setListAdapter(adapter); 
} 

@Override 
public Loader<Cursor> onCreateLoader(int id, Bundle args) { 
    String[] projection = { ToDoTable.COLUMN_ID, ToDoTable.COLUMN_TODO_NAME, ToDoTable.COLUMN_TODO_PLACE, ToDoTable.COLUMN_TODO_START, ToDoTable.COLUMN_TIME_START, ToDoTable.COLUMN_TODO_END, }; 
    CursorLoader cursorLoader = new CursorLoader(this, 
      DataContentProvider.CONTENT_URI, projection, null, null, ToDoTable.COLUMN_TODO_START + " ASC"); 
    return cursorLoader; 
} 

私は、現時点では、次のコードを使用します。

ありがとうございます。

+0

。そして、日付を比較して並べ替えます。これをチェックする - http://stackoverflow.com/questions/12473550/how-to-convert-string-date-to-long-millseconds – randy

+0

ToDoTable.COLUMN_TODO_START + "私の半分の作業と一緒にそれを統合することは可能ですか? "コードの一部? – Timitrov

答えて

0

ベストソリューションはデータベースになります。多くのデータについては、mysqlを自由に使用してください。 sqlite3。ライブラリをインポートし、テーブルにすべてのデータを入れ、クエリを実行します。

reslt =mydatabase.find("select name,todo,time_start,time_end from todo_list order by time_start") 

mysqlでは、データと時間はたった1フィールドです。 sqlのTIMESTAMPを使用します。

0

SQLiteには、日付と時刻を保存するためのストレージクラスはありません。 Date And Time Functionsを使用できます。

ので、生のクエリは次のように見ることができます:あなたのDateオブジェクトがロングに変換

SELECT * FROM Table ORDER BY datetime(dateColumn) DESC Limit 1