2016-05-29 9 views
0

リストのトピックをクリックしてアンドロイドアプリでリストをソートしようとしています。 私が試したコードは以下の通りです。このコードはアダプタをソートしますが、ビューは更新されません。私は検索しようとしましたが、すべての答えはnotifyDataSetChanged()を呼び出さなければならないと言っていますが、ここでは機能しません。どうしましたか?アンドロイドでアダプタを並べ替えると表示が更新されない

projectAdapter.sort(new Comparator<ProjectItem>() { 
        @Override 
        public int compare(ProjectItem lhs, ProjectItem rhs) { 
         return lhs.getPriority() - rhs.getPriority(); 
        } 
       }); 
       projectArrayList = projectAdapter.projectItems; 
       projectAdapter = new ProjectAdapter(getActivity(), projectArrayList); 
       setListAdapter(projectAdapter); 
       getListView().setOnItemClickListener(this); 
       projectAdapter.notifyDataSetChanged(); 
+0

あなたのソート関数を呼び出していませんでした。また、newの後にsort関数を定義する必要があります。 – pooyan

+0

詳しいことはありますか? System.out.print(projectArrayList.get(0).getId())をチェックすると、リストが正しくソートされていることがわかります。 – Balle

+0

私の答えを参照してください。 – pooyan

答えて

0

は怒鳴るコードを使用しよう:

  projectArrayList = projectAdapter.projectItems; 
      projectAdapter = new ProjectAdapter(getActivity(), projectArrayList); 
      setListAdapter(projectAdapter); 
      getListView().setOnItemClickListener(this); 
      projectAdapter.sort(new Comparator<ProjectItem>() { 
       @Override 
       public int compare(ProjectItem lhs, ProjectItem rhs) { 
        return lhs.getPriority() - rhs.getPriority(); 
       } 
      }); 
      projectAdapter.notifyDataSetChanged(); 
+0

これはどちらもうまくいかなかったが、とにかく感謝している。 – Balle

+0

@Balleあなたのアダプタリストはソートされていますが、ユーザーインターフェイスで更新されていないとお考えですか?私は正しい? – pooyan

+0

@Balle私はあなたの 'setListAdapter'関数があなたのリストにアダプタを正しく添付するのは間違いです。 – pooyan

関連する問題