0

アイテムの名前に応じて ListView アイテムを並べ替えるために、以下のコードを取得しました。

case R.id.menu_order_name:
        adapter.sort(new Comparator<Shop>() {
            @Override
            public int compare(Shop arg0, Shop arg1) {
                return arg0.getName().compareTo(arg1.getName());
            }
        });
        this.setListAdapter(adapter);
        adapter.notifyDataSetChanged();
        return true;

難易度で並べ替えるための ActionBar メニュー オプションも必要であるという点で、少し問題があります。難易度は、簡単、中程度、難しいです。問題は、同じ並べ替え方法を使用すると、アルファベット順のように、簡単、難しい、中程度に並べ替えられることです。簡単なものから難しいものまで、実際の難易度レベルと比較するように設定するのを手伝ってくれる人はいますか?この順序をどのように指定しますか?

前もって感謝します!私には手がかりがないので、すべての助けをいただければ幸いです。

4

2 に答える 2

1

@Robadob の助けを借りてアイデアを提供してくれたおかげで、ようやく難易度による並べ替えを修正しました。

   case R.id.menu_order_difficulty:
        adapter.sort(new Comparator<Shop>() {
            @Override
            public int compare(Recipe arg0, Recipe arg1) {
                return (difficulty(arg0.getDifficulty())-difficulty(arg1.getDifficulty()));
            }

            private int difficulty(String name)
            {
                if(name.equals("Easy"))
                    return 0;
                else if (name.equals("Medium"))
                    return 1;
                else if(name.equals("Hard"))
                    return 2;
                return 0;
            }
        });
        this.setListAdapter(adapter);
        adapter.notifyDataSetChanged();             
        return true;

これが将来誰かに役立つ場合に備えて、完全に完成した回答を投稿すると思いました。

于 2013-09-11T12:33:59.173 に答える