Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupérer les données d'un spinner

    18 septembre 2019 à 11:02:34

    Bonjour,

    Voilà je suis bloqué sur une appli dans laquelle j'ai un spinner personnalisé avec une image et un texte.

    Je n'arrive pas à récupérer les données.

    Voici mon code:

    private Reunion createReunion(View view){
    
            TextView reunionTitle = view.findViewById(R.id.edit_title_reu);
            Spinner spinnerRoom = view.findViewById(R.id.spinner_room);
            Spinner spinnerhour = view.findViewById(R.id.spinner_hour);
    
            spinnerRoom.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                  mRoomItemId = ((RoomItem) parent.getItemAtPosition(position)).getIdDrawable();
                  mRoomItemName = ((RoomItem) parent.getItemAtPosition(position)).getName();
                }
    
                @Override
                public void onNothingSelected(AdapterView<?> parent) {}
            });
    
            reunion = new Reunion(reunionTitle.getText().toString(),
                                    mRoomItemId,
                                    mRoomItemName,
                                    "16/09/19",
                                    spinnerhour.getSelectedItem().toString(),
                                    null);
            Log.i("ru", String.valueOf(reunion.getIdRoom()) + String.valueOf(reunion.getNameRoom()));
            return reunion;
        }

    Cette mèthode crée une nouvelle instance de réunion, cependant, les paramètres mRoomItemId et mRoomItemName renvoient 0 et null, alors que j'essaie de les initialiser dans le spinner (RoomItem est une enum avec un param id et texte).

    Les variables sont bien créées en variables de classe.

    Pouvez vous m'aider?

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      18 septembre 2019 à 14:19:40

      Salut,

      Ton code est un peu étrange. Y'a de l'asynchronisme entre l'affectation des variables (dans le listener) et leur utilisation. Donc potentiellement tu les utilises avant de leur affecter une valeur.

      Es-tu sûr que ton listener doit être dans la méthode createReunion et pas plutôt dans la méthode onCreate de ton activité ?

      • Partager sur Facebook
      • Partager sur Twitter
        19 septembre 2019 à 18:28:59

        Bonjour, 

        Merci pour la réponse. 

        Je pense en effet qu'il devrait être dans la méthode de création de la dialog. 

        Je vais tester ça. 

        • Partager sur Facebook
        • Partager sur Twitter

        Récupérer les données d'un spinner

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        • Editeur
        • Markdown