Bonjour à tous !
J'ai créé une base de donnée (bdd) agissant comme un répertoire de contact possédant le pseudo des contacts.
J'affiche ensuite cette bdd dans un listView.
J'aimerais lorsque l'utilisateur clique sur un contact afficher un message lui permettant de choisir s'il veut le supprimer ou non (cette partie d'affiche de message je maitrise).
Mon problème est que je ne sais pas comment récupérer le pseudo cliqué en tant que String pour pouvoir ensuite l'utiliser dans ma fonction deleteContact.
Donc si quelqu'un peut m'aider ça serait un soulagement pour moi !!
Je tiens à préciser que je débute le codage d'application android et que je réalise cette application pour un projet.
Je vous joins mon code
Affichage de ma listeView + affiche du message
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 public class ContactFragment extends Fragment { private DataBaseContact myDbC; private ArrayList<String> listContact; private ListView contactView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View v = inflater.inflate(R.layout.fragment_contact, container, false); Button create_Btn = v.findViewById(R.id.createBtn); create_Btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(getActivity(), Add_Contact.class); startActivity(i); } }); contactView = v.findViewById(R.id.listContactView); myDbC = new DataBaseContact(getContext()); listContact = new ArrayList<>(); viewData(); contactView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Cursor cursor = myDbC.viewContact(); String recup_pseudo = cursor.getString(4); showInformationSavedDialog(recup_pseudo); } }); return v; } private void viewData() { Cursor cursor = myDbC.viewContact(); if (cursor.getCount() == 0) { Toast.makeText(getContext(),"No Data to show", Toast.LENGTH_SHORT).show(); } else { while (cursor.moveToNext()){ listContact.add(cursor.getString(4)); ArrayAdapter listAdapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_list_item_1, listContact); contactView.setAdapter(listAdapter); } } } protected void showInformationSavedDialog(final String pseudo) { AlertDialog.Builder builder; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { builder = new AlertDialog.Builder(getContext(), android.R.style.Theme_Material_Dialog_Alert); } else { builder = new AlertDialog.Builder(getContext()); } builder.setMessage(R.string.dialogue_message); builder.setCancelable(false); builder.setNegativeButton(R.string.no_answer, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); builder.setPositiveButton(R.string.yes_answer, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); //myDbC.deleteData(pseudo); } }); AlertDialog alert = builder.create(); alert.show(); } }
Traitement de ma bdd
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 public class DataBaseContact extends SQLiteOpenHelper{ private static final String DATABASE_NAME = "Contact.db"; private static final String CONTACT_NAME = "contact_table"; private static final String COL_1 = "PSEUDO"; public DataBaseContact(@Nullable Context context){ super(context, DATABASE_NAME, null, 1); } @Override public void onCreate(SQLiteDatabase dbC) { dbC.execSQL("create table " + CONTACT_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT, PSEUDO TEXT)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + CONTACT_NAME); onCreate(db); } boolean insertPseudo(String pseudo) { SQLiteDatabase dbC = this.getWritableDatabase(); ContentValues contentPseudo = new ContentValues(); contentPseudo.put(COL_1,pseudo); if (!checkPseudoContact(pseudo)) { long result = dbC.insert(CONTACT_NAME, null, contentPseudo); if (result == -1) return false; else return true; } else return false; } public Cursor viewContact() { SQLiteDatabase db = this.getWritableDatabase(); Cursor res = db.rawQuery("Select * from " + CONTACT_NAME, null); return res; } private boolean checkPseudoContact(String pseudo) { SQLiteDatabase db = this.getReadableDatabase(); String savePseudo = null; Cursor c = db.rawQuery("SELECT * FROM contact_table WHERE pseudo = '"+pseudo+"'", null); int pseudoIndex = c.getColumnIndex("PSEUDO"); c.moveToFirst(); if (c.moveToFirst()) { savePseudo = c.getString(pseudoIndex); return savePseudo.equals(pseudo); } else return false; } public Integer deleteData(String pseudo) { SQLiteDatabase db = this.getWritableDatabase(); return db.delete(CONTACT_NAME,"PSEUDO = ?",new String[] {pseudo}); } }
Partager