Вы можете получить название страны, как вы взыскательные возрастанию или DESC при извлечении данных из таблицы базы данных в SQLite как с помощью инструкции запроса или rawQuery
запроса (Cursor запроса (String таблицы, String [] колонны, выбор String, String [] selectionArgs, String группиЙ, String, имеющая, String OrderBy, предел String)) ->
SqliteDBObject.query(tableName,new String[] {ColumnNameOfCountry},null,null,null,null,ColumnNameOfCountry+" asc",null);
или с помощью курсора rawQuery (String SQL, String [] selectionArgs) - ->
SqliteDBObject.rawQuery ("select ColumnNameOfCountry from tableName order by ColumnNameOfCountry asc ", null);
это как запрос будет возвращать вам курсор, который имеющий столбец ColumnNameOfCountry
с данными как по возрастанию или если вы хотите, чтобы ваши данные в порядке убывания так заменить слово asc
как в запросе к DESC
и вы получите Это. и используйте этот курсор для вывода данных в классе SystemCountryListDS
, выполнив операцию в findAll()
и добавьте в список и верните его, чтобы установить адаптер или где бы вы его ни использовали.
другой путь это путь вы попробуйте, как сортировка, используя Collections
класс, но функция, которую вы использовали в Collections.sort(system_country_list);
это вы для только тех класса, который имеет реализуют интерфейс Comparable
. он будет сортироваться в естественном порядке по умолчанию (только по возрастанию), поскольку String реализовала этот интерфейс, чтобы вы могли использовать эту функцию, и без каких-либо проблем вы получите нужный результат.
, но в вашем случае вы можете достичь того же в два пути либо реализаций Сопоставимого интерфейса или используя собственного класс Comparator пути реализации компаратора интерфейсу примера из сравнимых (в вашем случае)
class SystemCountryList implements Comparable<SystemCountryList>
{
/*All your field or variable and member function will go here */
/** i m assuming that you country name will varible or field is
country
and you have used the getter and setter function for it
if not below i am writing
**/
private String country;
public void setCountry(String country)
{
this.country=country;
}
public String getCountry()
{
return country;
}
/*
** Implement the natural order for this class
*/
public int compareTo(SystemCountryList s)
{
return getCountry().compareTo(s.getCountry());
}
}
Теперь наш код будет работать
Collections.sort(system_country_list);
другой путь сделать свой собственный вызов компаратора
Collections.sort(system_country_list, new Comparator<SystemCountryList>() {
@Override
public int compare(SystemCountryList s1, SystemCountryList s2) {
return (s2.getCountry()).compareTo(s1.getCountry());
}
});
вам необходимо предоставить объект-компаратор для сортировки в качестве второго параметра, где вы укажете, как метод будет сортировать набор данных – Blackbelt
Что происходит с вами * поиск * для ошибки? Поскольку ошибка говорит о том, что это означает: SystemCountryListDS не реализует Comparable; см. документацию Collections.sort, почему она требуется. (Это исключение не имеет * ничего *, связанного с SQLite, но если он может быть/упорядочен в SQLite, вам не нужно будет делать это на Java.) – user2864740
http://developer.android.com/reference/java/ lang/Comparable.html, http://www.mkyong.com/java/java-object-sorting-example-comparable-and-comparator/, http://stackoverflow.com/questions/20204667/java-generics-inserting -inner-type-parameter – user2864740