Bonsoir ,
J'ai crée un spinner qui permet de choisir le type de tri de la listview contenue dans un listfragment .
Cependant lorsque je choisis un tri , la listview ne change pas... Je ne comprends pas pourquoi .

voici mon code :
Pour mon spinner :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public void addListenerOnButton() {
 
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                Toast.makeText(adapterView.getContext(),
                        "OnItemClickListener : " + adapterView.getItemAtPosition(i).toString(),
                        Toast.LENGTH_SHORT).show();
 
                switch (i)
                {
                    case 0:
                        listFragment.sort(SortType.AlphaTitre);
                        break;
                    case 1:
                        listFragment.sort(SortType.AlphaDesc);
                        break;
                    case 2:
                        listFragment.sort(SortType.Importance);
                        break;
                    case 3:
                        listFragment.sort(SortType.DateCreation);
                        break;
                    case 4:
                        listFragment.sort(SortType.DateAlarme);
                        break;
                }
            }
 
            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
 
            }
        });
    }
Dans le listfragment :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
    public void sort(SortType type){
        adapter.sort(new MonComparator(type));
    }
mon comparator :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.hascoet.ubo_blocnote;
 
import java.util.Comparator;
 
/**
 * Created by Hascoet Kevin on 04/11/14.
 */
public class MonComparator implements Comparator<Note> {
 
    private SortType orderType;
 
    public MonComparator(SortType type)
    {
        this.orderType=type;
    }
 
 
    @Override
    public int compare(Note note, Note note2) {
        int res=0;
        if(orderType == SortType.AlphaTitre){
            res = (note.getTitre()).compareTo(note2.getTitre());
        }else if(orderType==SortType.AlphaDesc){
            res=(note.getDescription()).compareTo(note.getDescription());
        }
        else if(orderType==SortType.DateCreation){
            res = (note.getDateCreation()).compareTo(note2.getDateCreation());
        }else if(orderType==SortType.DateAlarme){
            res = (note.getDate()).compareTo(note2.getDate());
        }else if(orderType==SortType.Importance){
            res=((Integer)note.getImportance()).compareTo((Integer)note2.getImportance());
        }
 
        return res;
    }
}
mon adapter :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package com.hascoet.ubo_blocnote;
 
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
 
import java.util.Comparator;
import java.util.List;
 
/**
 * Created by atlas on 30/10/14.
 */
public class MonListeAdapter extends ArrayAdapter<Note> {
 
        private Integer[] images={
                R.drawable.priorite_low,
                R.drawable.priorite_medium,
                R.drawable.priorite_high
        };
        private List<Note> notes;
 
        private Context context;
 
 
        public MonListeAdapter(Context context,List<Note> values){
            super(context,0);
            this.context=context;
            this.notes=values;
        }
 
 
    @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 
            View rowview = inflater.inflate(R.layout.listlayout,parent,false);
 
            TextView titre = (TextView)rowview.findViewById(R.id.titre);
            TextView desc = (TextView)rowview.findViewById(R.id.description);
            TextView alarme = (TextView)rowview.findViewById(R.id.alarmeText);
            ImageView img = (ImageView)rowview.findViewById(R.id.img);
 
            Note n=notes.get(position);
            if(n.getDate()!=null)
            {
                alarme.setText("Alarme :"+n.afficheDate());
            }
 
            titre.setText(n.getTitre());
            desc.setText(n.getDescription());
 
            img.setImageResource(images[notes.get(position).getImportance()-1]);
 
          return rowview;
        }
 
    public void remove(Note note)
    {
 
        for(Note n : notes){
            if(n.getDescription().equals(note.getDescription())){
                notes.remove(n);
            }
        }
    }
 
 
    @Override
    public void sort(Comparator comparator) {
        super.sort(comparator);
        notifyDataSetChanged();
    }
 
    @Override
    public int getCount() {
        return notes.size();
    }
 
    @Override
    public Note getItem(int position) {
        return notes.get(position);
    }
 
    @Override
    public long getItemId(int position) {
        return notes.indexOf(getItem(position));
    }
 
 
}
Et enfin l'énumeration :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
public enum SortType {
    AlphaTitre,
    AlphaDesc,
    DateAlarme,
    DateCreation,
    Importance
 
}


Merci d'avance pour votre aide , je bloque vraiment...