Salut à tous,
Et d'abord merci à tous les participants de ce forum pour toutes les infos que l'on peut y trouver.

Voilà mon problème...Je tente de créer un bouton TRIER (bouton 4) mais je ne comprend pas vers quelle méthode il faut que je me dirige.
J'ai une base de données SQLite qui charge une listview par l'intermediaire d'un adapter dans mon application et des boutons ajouter, nouveau, supprimer et le fameux TRIER. Mais pour ce dernier je suis perdu.

Pouvez vous m'aider pour arriver à trier ma liste par ordre alphabétique au niveau des point d'interrogations...

Je ne sais pas si je suis très claire n'hésitez pas à me demander des éclaircissements

Class qui gère mes boutons:
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
 
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import java.util.Comparator;
import java.util.List;
 
public class ListeLegumes extends ListActivity implements OnClickListener {
 
    // affichage
    private Button addBouton;
    private Button newBouton;
    private Button deleteBouton;
    private Button trierBouton;
    EditText editText;
    // adapter
    private ArrayAdapter<Personne> myAdapter;
    // bdd
    private PersonneDataSource datasource;
    // personneselected
    Personne personneSelected = null;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_liste_legumes);
 
        // ouverture d'une connexion avec la bdd
        datasource = new PersonneDataSource(this);
        datasource.open();
 
 
        // nos boutons
        addBouton = (Button) findViewById(R.id.button1);
        addBouton.setOnClickListener(this);
 
        newBouton = (Button) findViewById(R.id.button2);
        newBouton.setOnClickListener(this);
        newBouton.setEnabled(false);
 
        deleteBouton = (Button) findViewById(R.id.button3);
        deleteBouton.setOnClickListener(this);
        deleteBouton.setEnabled(false);
 
        trierBouton = (Button) findViewById(R.id.button4);
        trierBouton.setOnClickListener(this);
 
        // notre champ de saisie
        editText = (EditText) findViewById(R.id.editText1);
 
        // on récupère les personnes
        List<Personne> listValues = datasource.getAllPersonnes();
 
        // on créé un adapter
        myAdapter = new ArrayAdapter<Personne>(this, R.layout.row_layout,
                R.id.listText, listValues);
 
        // assign the list adapter
        setListAdapter(myAdapter);
    }
 
    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.button1) {
            if (editText.getText().length() > 0) {
                if (personneSelected != null) {
                    // UPDATE
                    personneSelected.setNom(editText.getText().toString());
                    datasource.updatePersonne(personneSelected);
                } else {
                    // CREATE
                    myAdapter.add(datasource.createPersonne(editText.getText()
                            .toString()));
                    editText.setText("");
                }
                myAdapter.notifyDataSetChanged();
            } else {
                Toast toast = Toast.makeText(this, "Pas de nom!",
                        Toast.LENGTH_SHORT);
                toast.show();
            }
 
        }
        if (v.getId() == R.id.button2) {
            personneSelected = null;
            editText.setText("");
            addBouton.setText("Ajouter");
        }
 
        if (v.getId() == R.id.button3) {
            if (personneSelected != null) {
                editText.setText("");
                addBouton.setText("Ajouter");
                datasource.deletePersonne(personneSelected);
                myAdapter.remove(personneSelected);
                myAdapter.notifyDataSetChanged();
                personneSelected = null;
            }
        }
 
        if (v.getId() == R.id.button4){
????
???
???
?
???
?
???
????
????
???
????
????
???
???
 
        }
    }
 
 
 
    @Override
    protected void onListItemClick(ListView list, View view, int position,
                                   long id) {
        super.onListItemClick(list, view, position, id);
 
        personneSelected = (Personne) getListView().getItemAtPosition(position);
 
        editText.setText(personneSelected.getNom());
 
        addBouton.setText("Modifier");
        newBouton.setEnabled(true);
        deleteBouton.setEnabled(true);
 
    }
 
    @Override
    protected void onResume() {
        datasource.open();
        super.onResume();
    }
 
    @Override
    protected void onPause() {
        datasource.close();
        super.onPause();
    }
 
}

Ma sqLite:
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
 
 
/**
 * Created by CEDRIC on 01/10/2015.
 */
 
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
 
 
 
public class MySQLiteHelper extends SQLiteOpenHelper {
 
    public static final String TABLE_PERSONNES = "personnes";
    public static final String COLUMN_ID = "_id";
    public static final String COLUMN_NAME = "name";
    private static final String DATABASE_NAME = "personnes.db";
    private static final int DATABASE_VERSION = 2;
 
 
    // Database creation sql statement
    public String DATABASE_CREATE =
            "create table " + TABLE_PERSONNES + "("
            + COLUMN_ID + " integer primary key autoincrement, "
            + COLUMN_NAME + " text not null);";
 
    public MySQLiteHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
 
        db.execSQL(DATABASE_CREATE);
 
        ContentValues cv = new ContentValues(1);
        cv.put(COLUMN_NAME, "Salade");
        db.insert(TABLE_PERSONNES, null, cv);
 
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_PERSONNES);
        onCreate(db);
        db.query("personnes", new String[]{"name"}, null, null, null, null,
                "name DESC", null);
    }
 
}
Ma class PersonneDataSource
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
 
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
 
import java.util.ArrayList;
import java.util.List;
 
public class PersonneDataSource {
 
    // Database fields
    private SQLiteDatabase database;
    private MySQLiteHelper dbHelper;
    private String[] allColumns = { MySQLiteHelper.COLUMN_ID,
            MySQLiteHelper.COLUMN_NAME };
 
    public PersonneDataSource(Context context) {
        dbHelper = new MySQLiteHelper(context);
    }
 
    public void open() throws SQLException {
        database = dbHelper.getWritableDatabase();
    }
 
    public void close() {
        dbHelper.close();
    }
 
    public Personne createPersonne(String name) {
        ContentValues values = new ContentValues();
        values.put(MySQLiteHelper.COLUMN_NAME, name);
        long insertId = database.insert(MySQLiteHelper.TABLE_PERSONNES, null,
                values);
        Cursor cursor = database.query(MySQLiteHelper.TABLE_PERSONNES,
                allColumns, MySQLiteHelper.COLUMN_ID + " = " + insertId, null,
                null, null, null);
        cursor.moveToFirst();
        Personne newPersonne = cursorToPersonne(cursor);
        cursor.close();
                return newPersonne;
    }
 
    public void updatePersonne(Personne personne){
        ContentValues values = new ContentValues();
        values.put(MySQLiteHelper.COLUMN_NAME, personne.getNom());
 
        database.update(MySQLiteHelper.TABLE_PERSONNES, values,
                MySQLiteHelper.COLUMN_ID + " = ? ",
                new String[]{String.valueOf(personne.getId())});
 
    }
 
    public void deletePersonne(Personne personne) {
        long id = personne.getId();
        database.delete(MySQLiteHelper.TABLE_PERSONNES,
                MySQLiteHelper.COLUMN_ID + " = " + id, null);
    }
 
    public List<Personne> getAllPersonnes() {
        List<Personne> personnes = new ArrayList<Personne>();
 
        Cursor cursor = database.query(MySQLiteHelper.TABLE_PERSONNES,
                allColumns, null, null, null, null, null);
 
        cursor.moveToFirst();
        while (!cursor.isAfterLast()) {
            Personne personne = cursorToPersonne(cursor);
            personnes.add(personne);
            cursor.moveToNext();
        }
        // make sure to close the cursor
        cursor.close();
        return personnes;
    }
 
    private Personne cursorToPersonne(Cursor cursor) {
        Personne personne = new Personne();
        personne.setId(cursor.getLong(0));
        personne.setNom(cursor.getString(1));
        return personne;
    }
 
}