如果我的问题光标相当简单的,我的代码如何排序基于时间串
Cursor mCursor = this.getContentResolver().query(
PlayerContentProviderDB.CONTENT_URI, fulldataColumns, null, null,
Players.SCORE +" ASC");
此代码这一细分市场,从一切我所看到的,应以升序排列光标基于Players.SCORE,但事实并非如此。
参考Players.SCORE将始终是
mm:ss:msmsms(读取分钟:秒:毫秒)格式的字符串。
另外这里是查询方法的代码在我的ContentProvider
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
checkColumns(projection);
queryBuilder.setTables(PlayerContract.Players.PLAYERS_TABLE_NAME);
int uriType = sURIMatcher.match(uri);
switch (uriType) {
case ALL_SCORES:
break;
case SCORE_ID:
queryBuilder.appendWhere(PlayerContract.Players.ID + "="
+ uri.getLastPathSegment());
break;
default:
throw new IllegalArgumentException("Unknown URI: " + uri);
}
SQLiteDatabase db = this.dbHelper.getReadableDatabase();
Cursor cursor = queryBuilder.query(db, projection, selection,
selectionArgs, null, null, sortOrder);
// Notify potential listeners
cursor.setNotificationUri(getContext().getContentResolver(), uri);
return cursor;
我的问题是,为什么这剂代码无法正常工作,我该如何解决?
(有关此代码的另一个有趣的现象是,我也试图限制语句添加到排序,我已经读了作品的结尾,但是我的是不是)
谢谢你,我就在想,这是错误的,但试图为建议从别的地方排序整数和字符串不排序的一串数字。生病编辑我的问题,以显示我最初的东西 – Noob 2014-10-26 18:03:57
好吧,我去检查并添加了我非常确定的代码。它看起来像它会工作,但我可能是错的 – Noob 2014-10-26 18:27:57
@Noob:这看起来没问题。您可能会考虑添加[对'buildQuery()']的调用(http://developer.android.com/reference/android/database/sqlite/SQLiteQueryBuilder.html#buildQuery(java.lang.String [],%20java)。 lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String))并记录它,看看是否给你任何线索。 – CommonsWare 2014-10-26 21:03:58