Bonsoir,
J'ai réalisé le projet et j'ai développé pas mal. Malheureusement,j'ai un problème avec spinner,c'est quand je veux remplir les valeurs de ville (code postal et ville) dans spinner à partir de la base de données avec l'objet JSON et ça n'affiche pas dans un layout. J'ai cherché le site sur spinner et j'ai testé le bout de code en vain.
Voici le bout de code nécessaire pour remplir un spinner de ville :
C'est la classe FicheMedecin que j'ai de problème du code :
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
private Spinner ville;
		.....
		@Override
		protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
			ville = (Spinner)findViewById(R.id.spinnerVille);
		try {
			......
			ArrayAdapter<Ville> adapter = new ArrayAdapter<Ville>(this, android.R.layout.simple_spinner_item);
			adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
			List<Ville> villes = Engine.getEngine().getVilles();
			for(Ville v : villes){
				adapter.add(v);
			}
		} catch (EngineException e) {
			e.printStackTrace();
		}
	}
La classe Engine et je n'ai pas de souci avec cette classe mais ça peut vous aider savoir où ça mène à la classe FicheMedecin :
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 ArrayList<Ville> getVilles() throws EngineException {
        if (!estAutentifier) {
            throw new EngineException("Vous devez êtres autentifier pour avoir accès!");
        }
        ArrayList<Ville> villes = new ArrayList<Ville>();
        try {
            String phraseJson = getJSON(LIEN + MEDECIN + "?nom=" + nom + "&prenom=" + prenom + "&token=" + token + "&action=getVille", null);
            JSONObject obj = new JSONObject(phraseJson);
            if (obj.getString("type").equals("erreur")) {
                throw new EngineException(obj.getString("message"));
            } else {
                JSONObject essai = obj.getJSONObject("contenu");
                JSONArray array = essai.names();
                for (int i = 0; i < array.length(); i++) {
                    JSONObject med = essai.getJSONObject(array.getString(i));
                    villes.add(new Ville(med.getLong("id"), med.getString("codePostal"), med.getString("ville")));
                }
            }
        } catch (JSONException e) {
            e.printStackTrace();
            throw new EngineException(e.getMessage());
        } catch (ClientProtocolException ex) {
            Logger.getLogger(Engine.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Engine.class.getName()).log(Level.SEVERE, null, ex);
        }
        return villes;
    }
 
    public static Engine getEngine() {
        if (engine == null) {
            engine = new Engine();
        }
        return engine;
    }
Une classe Ville : j'ai fait le constructeur,setteur,getteur et toString (code postal et ville). Je ne mets pas ce code car je n'ai pas de problème avec cette classe.

D'ailleurs,j'ai testé le code et la ville est bien affichée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
public static String ADR ;
Log.v("ADR" , Engine.getEngine().getVille(new Ville(medComplet.getVille())).getVille());
Mais pour le spinner dans un layout,ça n'affiche pas.
Je pense que j'ai mal fait avec ArrayAdapter mais pas sûre. Ai-je loupé le code qu'il faut insérer?
Merci d'avance pour votre aide.