Utiliser une variable hors de ondatachange
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Utiliser une variable hors de ondatachange



  1. #1
    Eche043

    Utiliser une variable hors de ondatachange


    ------

    Bonjour la communauté, j'essaie de récupérer une variable qui se trouve dans
    Code:
    onDataChange
    mais j'ai constaté que cela n'est pas possible.

    je ne suis pas expérimenté en Java donc comprenez moi.

    voici mon code

    Code:
    databaseReference.addValueEventListener(new ValueEventListener() {
                    @Override
                    public void onDataChange(@NonNull DataSnapshot snapshot) {
                        List<HashMap<String, String>> aList = new ArrayList<HashMap<String, String>>();
                        for (DataSnapshot recipeSnapshot : snapshot.getChildren()){
                            String key = recipeSnapshot.getKey();
                            HashMap<String, String> hm = new HashMap<String, String>();
                            hm.put("PharmacieNom", key);
                            hm.put("ListImage", Integer.toString(R.drawable.assurance));
                            aList.add(hm);
                        }
    
                        String[] from = {
                          "PharmacieNom","ListImage"
                        };
                        int[] to = {
                          R.id.pharmacie_lieu, R.id.listview_pharmacie_image
                        };
    
    
                        SimpleAdapter simpleAdapter = new SimpleAdapter(getBaseContext(), aList, R.layout.listview_pharmacie_item, from, to);
                        ListView simpleListview = (ListView) findViewById(R.id.list_assur);
                        simpleListview.setAdapter(simpleAdapter);
    
                    }
    @Override
                    public void onCancelled(@NonNull DatabaseError error) {
                        Toast.makeText(PharmacieActivity.this, "Erreur de connexion", Toast.LENGTH_SHORT).show();
                    }
                });
    ...
    
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        //J'aimerais utiliser la variable key qui se trouve en haut
    
                    }
                });
    J'aimerais utiliser la variable key dans setOnClikListener.
    Aidez moi svp. Merci

    -----

  2. #2
    umfred

    Re : Utiliser une variable hors de ondatachange

    apparemment, key dans onDataChange correspond à la valeur d'un champ PharmacieNom, qui me semble être remis dans la listview dont tu veux traiter l’événement onItemClick de listview; donc tu dois pouvoir la récupérer via les variables parent, view et position.
    peut-être parent.getAdapter().getItem(po sition)

  3. #3
    Eche043

    Re : Utiliser une variable hors de ondatachange

    Merci pour votre reponse.
    en effet cela me permet de récupérer le PharmacieNom et aussi ListImage pourtant je veux juste le nom.

  4. #4
    Eche043

    Re : Utiliser une variable hors de ondatachange

    grâce à umfred j'ai pu resoudre mon problème pour récupérer. j'ai fait
    Code:
    HasMap<String, String> b= (HashMap<String, String>) parent.getAdapter().getItem(position);
    String nom = (String) b.get("PharmacieNom");

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Réponses: 6
    Dernier message: 06/07/2011, 17h32
  2. Réponses: 1
    Dernier message: 24/09/2007, 12h26