Как отсортировать хэш-карту arraylist в Android? - PullRequest
0 голосов
/ 21 июля 2011

Я получил данные с веб-сайта и перенес это значение в hashmap.Я также создаю динамический линейный макет и отображаю в нем значение hashmap.Теперь проблема возникает, когда я хочу отобразить значение hashmap по имени и типу данных, как я могу это сделать?

for (int i = 0; i < nodes.getLength(); i++)


{


        Element e = (Element) nodes.item(i);
        Node node = nodes.item(i);
        HashMap<String, String> map = new HashMap<String, String>();

        lin = new LinearLayout(this);
        lin.setOrientation(LinearLayout.VERTICAL);
        lin.setBackgroundResource(R.drawable.my_border);

        LinearLayout linbsc = new LinearLayout(this);
        linbsc.setOrientation(LinearLayout.HORIZONTAL);
        map.put("name",node.getAttributes().getNamedItem("name").getNodeValue());
        TextView txtbasicname = new TextView(this);
        txtbasicname.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT, 1f));        
        //txtbasicname.setBackgroundColor(Color.WHITE);
        txtbasicname.setTextColor(Color.WHITE);
        String strbasicname =map.put("name",node.getAttributes().getNamedItem("name").getNodeValue());
        txtbasicname.setText(strbasicname);
        linbsc.addView(txtbasicname);


        lin.addView(linbsc);

        LinearLayout linthrd = new LinearLayout(this);
        linthrd.setOrientation(LinearLayout.HORIZONTAL);

        map.put("venuetype",node.getAttributes().getNamedItem("venuetype").getNodeValue());
        TextView txtbasicvenuetype = new TextView(this);
        txtbasicvenuetype.setTextColor(Color.WHITE);
        txtbasicvenuetype.setPadding(5, 0, 0, 0);
        String strbasicvenuetype =map.put("venuetype",node.getAttributes().getNamedItem("venuetype").getNodeValue());
        txtbasicvenuetype.setText(strbasicvenuetype+"-");
        linthrd.addView(txtbasicvenuetype);



        lin.addView(linthrd);

        LinearLayout linforth = new LinearLayout(this);
        linforth.setOrientation(LinearLayout.HORIZONTAL);
        map.put("address",node.getAttributes().getNamedItem("address").getNodeValue());
        TextView txtbasicaddress = new TextView(this);
        txtbasicaddress.setPadding(5, 0, 0, 0);
        txtbasicaddress.setTextColor(Color.WHITE);
        String strbasicaddress =map.put("address",node.getAttributes().getNamedItem("address").getNodeValue());
        txtbasicaddress.setText(strbasicaddress+",");
        linforth.addView(txtbasicaddress);

        map.put("city",node.getAttributes().getNamedItem("city").getNodeValue());
        TextView txtbasiccity = new TextView(this);
        txtbasiccity.setTextColor(Color.WHITE);
        String strbasiccity =map.put("city",node.getAttributes().getNamedItem("city").getNodeValue());
        txtbasiccity.setText(strbasiccity+",");
        linforth.addView(txtbasiccity);


        LinearLayout linfifth = new LinearLayout(this);
        linfifth.setOrientation(LinearLayout.HORIZONTAL);

        map.put("zip",node.getAttributes().getNamedItem("zip").getNodeValue());
        TextView txtbasiczip = new TextView(this);
        txtbasiczip.setTextColor(Color.WHITE);
        txtbasiczip.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT, 1f));         
        String strbasiczip =map.put("zip",node.getAttributes().getNamedItem("zip").getNodeValue());
        txtbasiczip.setText(strbasiczip+".");
        linfifth.addView(txtbasiczip);  

        lin.addView(linfifth);
        linm.addView(lin);
        dataList.add(map); 
        mylist.add(map);




    }


    System.out.println("data list = "+dataList);
    System.out.println("data list = "+dataListfeture);

Ответы [ 3 ]

1 голос
/ 21 июля 2011

Вы можете легко отсортировать HashMap, используя TreeMap как

TreeMap sortedMap1=new TreeMap<String, String>(HashMap Object);

TreeMap автоматически сортирует ключи. Таким образом, мы можем получить отсортированный keySet () следующим образом

sortedMap1.keySet();
0 голосов
/ 21 июля 2011

Объявите HashMap следующим образом, и любой элемент, добавленный на карту, будет автоматически отсортирован:

// This will create a map that will order the keys, ignoring casing of the strings
// (The 'String.CASE_INSENSITIVE_ORDER' can be removed if not wanted)
TreeMap<String, String> map = new TreeMap<String, String>(String.CASE_INSENSITIVE_ORDER);

Это означает, что если вы сделаете:

map.put("Hij", "145");
map.put("Abc", "321");
map.put("def", "123");

Тогда результат будет:

(«Abc», «321») («def», «123») («Hij», «145»)

0 голосов
/ 21 июля 2011

вы можете использовать TreeMap - это SortedMap , который будет сортировать данные по его ключу.

здесь хороший пример, посмотрите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...