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:
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 /** * 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); } }
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; } }
Partager