Bonjour,
Categorie.java
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 package com.test.projetfinal; import android.widget.ImageView; import java.util.ArrayList; import java.util.List; /** * Created by User on +-19/02/2017. */ public class Categorie { private String nom; private int idLogo; private ArrayList sousCats; // todo Color catégorie public Categorie(String nom,int idLogo){ this.nom = nom; this.idLogo = idLogo; sousCats = new ArrayList(); } public void addCat(Categorie sousCat){sousCats.add(sousCat); } public String getNom() { return nom; } public int getIdLogo() { return idLogo; } public ArrayList getSousCats() { return sousCats; } }
CategorieAdapter.java
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 package com.test.projetfinal; 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.LinearLayout; import android.widget.ListView; import android.widget.TextView; import java.util.ArrayList; import java.util.List; /** * Created by User on 18/02/2017. */ public class CategorieAdapter extends ArrayAdapter<Categorie> { ListView listView; public CategorieAdapter(Context context, List categories,ListView mListView){ super(context,0,categories); listView = mListView; } public View getView(int position,View convertView, ViewGroup parent) { if (convertView == null) { convertView = LayoutInflater.from(getContext()).inflate(R.layout.row_categorie,parent,false); } CategorieViewHolder viewHolder = (CategorieViewHolder) convertView.getTag(); if (viewHolder == null) { // récupére le nom du Categorie ou de la catégorie viewHolder = new CategorieViewHolder(); viewHolder.categorie = (LinearLayout) convertView.findViewById(R.id.categorie); viewHolder.nom = (TextView) convertView.findViewById(R.id.nom); viewHolder.logo = (ImageView) convertView.findViewById(R.id.logo); convertView.setTag(viewHolder); } final Categorie categorie = getItem(position); viewHolder.nom.setText(categorie.getNom()); viewHolder.categorie.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ArrayList<Categorie> sousCats = categorie.getSousCats(); // afficher dans la vue actuel listView.setAdapter(new CategorieAdapter(getContext(),sousCats,listView)); } }); return convertView; } }
CategorieViewHolder.java
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 package com.test.projetfinal; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; /** * Created by User on 18/02/2017. */ public class CategorieViewHolder { public LinearLayout categorie; public TextView nom; public ImageView logo; }
MainActivity.java
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
156
157
158
159
160
161
162
163
164
165
166
167
168
169 package com.test.projetfinal; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.ListView; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.JsonObjectRequest; import com.android.volley.toolbox.Volley; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class MainActivity extends AppCompatActivity { ListView mListView; public List categories; public CategorieAdapter adapter; RequestQueue requestQueue; String showUrl = "http://192.168.1.87/Php/showCategorie.php"; ArrayList T_alimentaire_description = new ArrayList(); ArrayList T_alimentaire = new ArrayList(); String T1[] = new String[14]; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mListView = (ListView) findViewById(R.id.listView); categories = genererCategorie(null); adapter = new CategorieAdapter(MainActivity.this, categories, mListView); mListView.setAdapter(adapter); } private ArrayList genererCategorie(ArrayList sousCats) { if (sousCats != null) { return sousCats; } ArrayList categories = new ArrayList(); Categorie alimentaire = new Categorie("Alimentation"+T1[0],R.mipmap.ic_launcher); String T_alimentaire_description[] = {"Alimentation Générale","Boucheries - Charcuteries - Traiteurs","Boulangeries - Patisseries","Cavistes","Chocolateries - Confiseries - Glacier - Torréfaction - Thés","Fromageries","Produits diététiques, biologiques, naturels"}; String T_alimentaire[] = {"alimgene","boucherie","boulangerie","cavistes","chocolaterie","formagerie","dietetique"}; // ALIMENTAIRE //----------------------------------------------------------------------------------------------------// Map<String,Categorie> categories1 = new HashMap<String,Categorie>(); for (int i =0; i<T_alimentaire.length; i++){ String key = T_alimentaire[i]; String desc = T_alimentaire_description[i];//+T1[i]; Categorie value = new Categorie(desc,R.mipmap.ic_launcher); categories1.put(key, value); alimentaire.addCat(categories1.get(key)); } // Animaux Fleuriste Jardin Categorie animauxFleu = new Categorie("Animaux - Fleuristes - Jardin",R.mipmap.ic_launcher); Categorie animaux = new Categorie("Animaux",R.mipmap.ic_launcher); Categorie fleuristes = new Categorie("Fleuristes",R.mipmap.ic_launcher); Categorie jardin = new Categorie("Jardin",R.mipmap.ic_launcher); animauxFleu.addCat(animaux); animauxFleu.addCat(fleuristes); animauxFleu.addCat(jardin); // Batiments Immobilier Categorie batimmo = new Categorie("Batiments - Immobilier",R.mipmap.ic_launcher); //Beauté - Bien être Categorie beautebienetre = new Categorie("Beauté - Bien-être",R.mipmap.ic_launcher); //Café Tabac Presse Categorie cafetabacpresse = new Categorie("Café - Tabac - Presse",R.mipmap.ic_launcher); //Finances Categorie finances = new Categorie("Finances",R.mipmap.ic_launcher); //Hébergement - Restauration Categorie hebergResto = new Categorie("Hébergement - Restauration",R.mipmap.ic_launcher); //Loisirs Categorie loisirs = new Categorie("Loisirs",R.mipmap.ic_launcher); //Maison Bricolage Déco Categorie bricodeco = new Categorie("Maison - Bricolage - Déco",R.mipmap.ic_launcher); //Mode Categorie mode = new Categorie("Mode",R.mipmap.ic_launcher); //Multimédia Categorie multimédia = new Categorie("Multimédia",R.mipmap.ic_launcher); //Santé Categorie sante = new Categorie("Santé",R.mipmap.ic_launcher); //Transport Vehicule Categorie transpovehic = new Categorie("Transports - Véhicules",R.mipmap.ic_launcher); //Autres Categorie autres = new Categorie("Autres",R.mipmap.ic_launcher); //Compilation categories.add(alimentaire); categories.add(animauxFleu); categories.add(batimmo); categories.add(beautebienetre); categories.add(cafetabacpresse); categories.add(finances); categories.add(hebergResto); categories.add(loisirs); categories.add(bricodeco); categories.add(mode); categories.add(multimédia); categories.add(sante); categories.add(transpovehic); categories.add(autres); return categories; } }
activity_main.xml
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 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.test.projetfinal.MainActivity" android:background="#346789"> <ListView android:id="@+id/listView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:dividerHeight="20dp" android:background="#346789" > </ListView> </LinearLayout>
build.gradle
showCategorie.php
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 apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.test.projetfinal" minSdkVersion 15 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.1.0' testCompile 'junit:junit:4.12' compile 'com.mcxiaoke.volley:library:1.0.19' }
connexion.php
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 <?php if($_SERVER["REQUEST_METHOD"]=="POST"){ include 'connection.php'; showStudent(); } function showStudent() { global $connect; $query = " SELECT * FROM categoriessql; "; $result = mysqli_query($connect, $query); $number_of_rows = mysqli_num_rows($result); $temp_array = array(); if($number_of_rows > 0) { while ($row = mysqli_fetch_assoc($result)) { $temp_array[] = $row; } } header('Content-Type: application/json'); echo json_encode(array("etudiants"=>$temp_array)); mysqli_close($connect); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?php define('hostname', 'localhost'); define('user', 'root'); define('password', 'root'); define('databaseName', 'tutorial'); $connect = mysqli_connect(hostname, user, password, databaseName); ?>
tutorial.sql
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 -- phpMyAdmin SQL Dump -- version 4.5.4.1 -- http://www.phpmyadmin.net -- -- Client : localhost -- Généré le : Sam 01 Avril 2017 à 21:11 -- Version du serveur : 5.7.11 -- Version de PHP : 5.6.18 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Base de données : `tutorial` -- -- -------------------------------------------------------- -- -- Structure de la table `categoriessql` -- CREATE TABLE `categoriessql` ( `nom` varchar(50) NOT NULL, `description` varchar(50) NOT NULL, `id_categorie` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Contenu de la table `categoriessql` -- INSERT INTO `categoriessql` (`nom`, `description`, `id_categorie`) VALUES ('alimgene', 'Alimentation Générale', 1), ('boucherie', 'Boucheries - Charcuteries - Traiteurs', 2), ('boulangerie', 'Boulangeries - Patisseries', 3), ('cavistes', 'Cavistes', 4), ('chocolaterie', 'Chocolateries - Confiseries - Glacier - Torréfaction - Thés', 5), ('formagerie', 'Fromageries', 6), ('dietetique', 'Produits diététiques, biologiques, naturels', 7), -- -------------------------------------------------------- - -- -- Index pour la table `categoriessql` -- ALTER TABLE `categoriessql` ADD PRIMARY KEY (`id_categorie`); -- -- AUTO_INCREMENT pour la table `categoriessql` -- ALTER TABLE `categoriessql` MODIFY `id_categorie` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15;
Je suis en train d'essayer de faire une application qui trierai des commerces par catégories.
En gros on arrive sur l'appli, on a X catégories, puis chaque catégorie a X catégories, etc jusqu'à arriver à chaque commerce.
La partie sur les catégories est déjà faite (on est plusieurs à faire l'appli, du coup c'est pas moi qui ai fait cette partie), et maintenant j'aimerai m'occuper de la partie qui concerne le lien entre l'appli et la base de donnée.
Je me suis aidé d'un tutoriel (que voici :)
Et j'ai essayé de l'adapter à ce que je dois faire, comme ceci :
MainActivity.java
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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206 package com.test.projetfinal; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.ListView; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.JsonObjectRequest; import com.android.volley.toolbox.Volley; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class MainActivity extends AppCompatActivity { ListView mListView; public List categories; public CategorieAdapter adapter; RequestQueue requestQueue; String showUrl = "http://192.168.1.87/Php/showCategorie.php"; ArrayList T_alimentaire_description = new ArrayList(); ArrayList T_alimentaire = new ArrayList(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mListView = (ListView) findViewById(R.id.listView); requestQueue = Volley.newRequestQueue(getApplicationContext()); JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, showUrl, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { System.out.println(response.toString()); try { JSONArray etudiants = response.getJSONArray("etudiants"); Map<String, Categorie> categories1 = new HashMap<String, Categorie>(); for (int i = 0; i < etudiants.length(); i++) { JSONObject categoriessql = etudiants.getJSONObject(i);//i String nom = categoriessql.getString("nom"); String description = categoriessql.getString("description"); } } catch (JSONException e) { e.printStackTrace(); } categories = genererCategorie(null); adapter = new CategorieAdapter(MainActivity.this, categories, mListView); mListView.setAdapter(adapter); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { System.out.append(error.getMessage()); } }); requestQueue.add(jsonObjectRequest); categories = genererCategorie(null); adapter = new CategorieAdapter(MainActivity.this, categories, mListView); mListView.setAdapter(adapter); } //--------------------------------------------------- private ArrayList genererCategorie(ArrayList sousCats) { if (sousCats != null) { return sousCats; } ArrayList categories = new ArrayList(); Categorie alimentaire = new Categorie("Alimentation",R.mipmap.ic_launcher); Map<String,Categorie> categories1 = new HashMap<String,Categorie>(); for (int i =0; i<T_alimentaire.size(); i++){ String key = (String)T_alimentaire.get(i); String desc = (String)T_alimentaire_description.get(i); Categorie value = new Categorie(desc,R.mipmap.ic_launcher); categories1.put(key, value); alimentaire.addCat(categories1.get(key)); } //Categorie match = new Categorie("Match",R.mipmap.ic_launcher); //categories1.get("alimgene").addCat(match); // Animaux Fleuriste Jardin Categorie animauxFleu = new Categorie("Animaux - Fleuristes - Jardin",R.mipmap.ic_launcher); Categorie animaux = new Categorie("Animaux",R.mipmap.ic_launcher); Categorie fleuristes = new Categorie("Fleuristes",R.mipmap.ic_launcher); Categorie jardin = new Categorie("Jardin",R.mipmap.ic_launcher); animauxFleu.addCat(animaux); animauxFleu.addCat(fleuristes); animauxFleu.addCat(jardin); // Batiments Immobilier Categorie batimmo = new Categorie("Batiments - Immobilier",R.mipmap.ic_launcher); //Beauté - Bien être Categorie beautebienetre = new Categorie("Beauté - Bien-être",R.mipmap.ic_launcher); //Café Tabac Presse Categorie cafetabacpresse = new Categorie("Café - Tabac - Presse",R.mipmap.ic_launcher); //Finances Categorie finances = new Categorie("Finances",R.mipmap.ic_launcher); //Hébergement - Restauration Categorie hebergResto = new Categorie("Hébergement - Restauration",R.mipmap.ic_launcher); //Loisirs Categorie loisirs = new Categorie("Loisirs",R.mipmap.ic_launcher); //Maison Bricolage Déco Categorie bricodeco = new Categorie("Maison - Bricolage - Déco",R.mipmap.ic_launcher); //Mode Categorie mode = new Categorie("Mode",R.mipmap.ic_launcher); //Multimédia Categorie multimédia = new Categorie("Multimédia",R.mipmap.ic_launcher); //Santé Categorie sante = new Categorie("Santé",R.mipmap.ic_launcher); //Transport Vehicule Categorie transpovehic = new Categorie("Transports - Véhicules",R.mipmap.ic_launcher); //Autres Categorie autres = new Categorie("Autres",R.mipmap.ic_launcher); //Compilation categories.add(alimentaire); categories.add(animauxFleu); categories.add(batimmo); categories.add(beautebienetre); categories.add(cafetabacpresse); categories.add(finances); categories.add(hebergResto); categories.add(loisirs); categories.add(bricodeco); categories.add(mode); categories.add(multimédia); categories.add(sante); categories.add(transpovehic); categories.add(autres); return categories; } }
Mais pas moyen,cela ne fonctionne pas.
J'ai cherché d'autres méthodes mais il y a tellement de choses différentes sur internet concernant le lien android/MySQL, que c'est plutôt compliqué (surtout que je suis plutôt débutant en java)
Je me doute bien que cela va être compliqué de m'aider, parce qu'il y a pas mal de code, et ma question pas très précise, mais j'essaye quand même ^^
Merci de votre aide,
Bonne soirée,
Bromy
(Si jamais je met le lien github du projet : https://github.com/Bromy74/Projet.git)
Partager