Zdravím,
prosím neporadil by mi někdo? Jsem začátečník v programování na Android a potřebuji poradit, jak setřídit česky ArrayList HashMap. Mám tento kód. Ten funguje, ale netřídí česky - háčky jsou na konci a také špatně řadí velká a malá písmena. Jak udělat, aby třídilo takto: A, a, B, b, C, c, Č, č, D..........
class MapComparator implements Comparator<Map<String, String>>
{
private final String key;
public MapComparator(String key)
{
this.key = key;
}
public int compare(Map<String, String> first,
Map<String, String> second)
{
String firstValue = first.get(key);
String secondValue = second.get(key);
return firstValue.compareTo(secondValue);
}
}
ArrayList<HashMap<String, String>> MojePole = new ArrayList<HashMap<String, String>>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.seznam_okno);
sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
Razeni = sharedPrefs.getString("razeni", "");
XMLParser parser = new XMLParser();
xml = parser.getXmlFromUrl(URL);
Document doc = parser.getDomElement(xml);
NodeList nl = doc.getElementsByTagName(KEY_ITEM);
for (int i = 0; i < nl.getLength(); i++)
{
HashMap<String, String> map = new HashMap<String, String>();
Element e = (Element) nl.item(i);
map.put(KEY_ID, parser.getValue(e, KEY_ID));
map.put(KEY_AUTHOR, parser.getValue(e, KEY_AUTHOR));
map.put(KEY_TITLE, parser.getValue(e, KEY_TITLE));
map.put(KEY_SONGTEXT, parser.getValue(e, KEY_SONGTEXT));
map.put(KEY_REMARK, parser.getValue(e, KEY_REMARK));
MojePole.add(map);
}
Collections.sort(MojePole, new MapComparator(KEY_AUTHOR));
Moc děkuji za radu.