Android SQLite(原生)
步骤1: 在创建数据库的地方 写上这句代码
@Override
public void onCreate(Database db) {
getReadableDatabase().setLocale(Locale.CHINESE);//添加这一行
super.onCreate(db);
}
步骤2: 在查询语句 最后面 加上 ORDER BY 列名称 COLLATE LOCALIZED ASC
例如:
SELECT * FROM Student WHERE age > 15 ORDER BY name COLLATE LOCALIZED ASC
|
Android GreenDao(第三方ORM)
步骤1: 在创建数据库的地方 写上这句代码
@Override
public void onCreate(Database db) {
getReadableDatabase().setLocale(Locale.CHINESE);//添加这一行
super.onCreate(db);
}
步骤2: 在queryBuilder后面加.preferLocalizedStringOrder().orderAsc(LzLianPositionsEntityDao.Properties.PositionName).list();
例如:
studentDao.queryBuilder().where(StudentDao.Properties.Age.gt(15)).preferLocalizedStringOrder().orderAsc(StudentDao.Properties.Name).list();
|
附送 排序后 颠倒 字符 和 汉字的位置
public static List<Student> studentListChange(List<Student> list) {
if (null != list && list.size() > 2) {
int indexKey = 0;
for (int i = list.size() - 1; i >= 0; i--) {
Student student = list.get(i);
if (!TextUtils.isEmpty(student.getName())) {
char c = student.getName().charAt(0);
if (c > 255) {
indexKey = i + 1;
break;
}
}
}
if (indexKey > 0) {
ArrayList<Student> tempStudentList = new ArrayList<>(list.subList(0, indexKey));
tempStudentList .addAll(0, list.subList(indexKey, list.size()));
return tempStudentList ;
}
}
return list;
}