#java #android #listview
#java #Android #listview
Вопрос:
Я пытаюсь отсортировать элементы списка, я использую пользовательский listview. В этом я сохранил элементы в строковом массиве. но при перечислении элементов в listview отображаются пустые элементы вместо отсортированных элементов. Но при отладке массивы строк сохраняются в отсортированном формате. Как это решить?
Комментарии:
1. Не могли бы вы поделиться своим кодом?
2. я пытаюсь отсортировать элементы списка, это правильно или вы пытаетесь сохранить элемент правильно
3. я пытаюсь отсортировать уже сохраненные элементы списка
4. PattabiRaman попробуйте с помощью Comparator отсортировать элементы
Ответ №1:
/**
* need to sort the ArrayList based on Person’s firstName.
* Here inside the Collections.sort method we are
* implementing the Comparator interface and overriding the compare method.
*/
Collections.sort(employeeList, new Comparator(){
public int compare(Object o1, Object o2) {
ContactInfo p1 = (ContactInfo) o1;
ContactInfo p2 = (ContactInfo) o2;
return p1.getEmployeeName().compareToIgnoreCase(p2.getEmployeeName());
}
});
this.fav_adapter = new FavoritesAdapter(this, R.layout.favorite_list_view, employeeList);
setListAdapter(this.fav_adapter);
public class ContactInfo {
private String employeeLpn;
private String employeeName;
/**
* Gets value for employeeLpn
* @return the employeeLpn
*/
public String getEmployeeLpn() {
return employeeLpn;
}
/**
* Sets the value for employeeLpn
* @param employeeLpn the employeeLpn to set
*/
public void setEmployeeLpn(String employeeLpn) {
this.employeeLpn = employeeLpn;
}
/**
* Gets value for employeeName
* @return the employeeName
*/
public String getEmployeeName() {
return employeeName;
}
/**
* Sets the value for employeeName
* @param employeeName the employeeName to set
*/
public void setEmployeeName(String employeeName) {
this.employeeName = employeeName;
}
}
Ответ №2:
Я видел код, и у меня возникла потенциальная проблема с приведенным ниже заявлением
HashMap<String, String> sampleObjectMap = new HashMap<String, String>();
titles[i-1]=**sampleObjectMap.put("title", dh.val1(i-1))**;
persons[i-1]=**sampleObjectMap.put("person", dh.pers(i-1))**;
priorities[i-1]=**sampleObjectMap.put("priorty", setpriority(String.valueOf(dh.getpriority(i-1))))**;
dates[i-1]=**sampleObjectMap.put("dat", getDate(Long.valueOf(dh.time(i-1)),"dd/MM/yyyy"))**;
Это смелое утверждение вернет значение любого предыдущего сопоставления с указанным ключом или null, если такого сопоставления не было. поэтому я предполагаю, что в этом случае не было выполнено никакого предыдущего сопоставления. поэтому, пожалуйста, убедитесь, что ваш массив заполнен