【问题标题】:Sort list by date and time按日期和时间排序列表
【发布时间】:2016-08-09 09:31:25
【问题描述】:

我仍然是 android 开发的新手,我的 ToDo 应用程序有问题。

目前我的列表视图显示所有已保存的待办事项仅按日期的前两位数字(天数!)排序,但日期以这种格式存储:“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;
}

如果有人能帮助我解决这个问题,尤其是在按两个标准(日期和时间)对列表进行排序方面,我将不胜感激。

提前致谢。

【问题讨论】:

  • 将您的 Date 对象转换为 Long 。然后比较日期并对其进行排序。检查这个 - stackoverflow.com/questions/12473550/…
  • 是否可以将它与我的半工作 ToDoTable.COLUMN_TODO_START + "ASC" 部分集成到代码中?

标签: android sorting date listview android-contentprovider


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    SQLite 没有专门用于存储日期和时间的存储类。你可以使用Date And Time Functions

    所以原始查询看起来像:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-09
      • 1970-01-01
      • 1970-01-01
      • 2019-03-12
      • 1970-01-01
      • 2012-08-16
      相关资源
      最近更新 更多