【问题标题】:I can't sort listview string in android我无法在android中对listview字符串进行排序
【发布时间】:2014-03-27 18:43:27
【问题描述】:

我尝试向Android: How to sort data for ListView? 学习,但我无法排序Flights 我在微调器中按选择排序(位置=1)我想对Flights 中的字符串进行排序

        final ArrayList<HashMap<String, String>> ArrList = new ArrayList<HashMap<String, String>>();

        Spinner sort1 = (Spinner) findViewById(R.id.sort1);
        String[] sortName;
        sortName = getResources().getStringArray(R.array.sort_enroute);
        ArrayAdapter<String> ADT = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, sortName);
        sort1.setAdapter(ADT);

        final ListView list1 = (ListView) findViewById(R.id.list);
        int arrLength = dataF.length;

        for (int i = 0; i < arrLength; i++)
       {
            HashMap<String, String> map = new HashMap<String, String>();

            map.put("Flights", dataF[i]);
            map.put("Types", dataT[i]);
            ArrList.add(map);
        }

        ListAdapter adapters = new SimpleAdapter(Result.this, ArrList,
                R.layout.column_layout, new String[] { "Flights", "Types"},
                new int[] { R.id.flightnum, R.id.DES });
        list1.setAdapter(adapters);


        sort1.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                if (arg2 == 1) {

                    Collections.sort(ArrList,
                            new Comparator<HashMap<String, String>>() {

                                @Override
                                public int compare(
                                        HashMap<String, String> arg0,
                                        HashMap<String, String> arg1) {

        return arg0.get("Flights").compareTo(arg1.get("Flights"));
                }

                });

                }
            }

【问题讨论】:

  • 能否格式化您的代码?在eclipse中点击控制(或命令)+shift+F。
  • 尝试删除数组列表中的final,声明为public,然后重试

标签: java android sorting compare


【解决方案1】:

对列表进行排序后,需要让适配器知道数据发生了变化。检查this。致电adapter.notifyDataSetChanged()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 2018-08-17
    • 2013-11-21
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多