按日期和时间排序列表

时间:2016-04-17 18:31:06

标签: android sorting date listview android-contentprovider

我仍然是Android开发中的新手,并且我的ToDo应用程序出现问题。

目前,我的列表视图显示所有已保存的待办事项仅按日期的前两位数字(天数!)排序,但日期以此格式存储:" dd.mm.yyyy& #34;

我的目标是按日期升序(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;
}

如果有人可以帮我解决这个问题,我将非常感激,特别是在按两个标准(日期和时间)对列表进行排序时。

提前致谢。

2 个答案:

答案 0 :(得分:0)

最佳解决方案是数据库:对于大量数据,请随意使用mysql,例如: sqlite3的。导入库,将所有数据放入表中并运行查询:

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

在mysql中,数据和时间只是一个字段。在sql中使用TIMESTAMP。

答案 1 :(得分:0)

SQLite没有为存储日期和时间而预留的存储类。您可以使用Date And Time Functions

因此原始查询可能如下所示:

if (empty($_POST["email"])) { $emailERR = "* Required"; } else { $email = mysqli_real_escape_string($_POST["email"]); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailERR = "* Invalid email"; } }