如果我的問題光標相當簡單的,我的代碼如何排序基於時間串
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