Partage
  • Partager sur Facebook
  • Partager sur Twitter

Intent android

Sujet résolu
    9 avril 2021 à 8:34:19

    Bonjour a tous .

    Je début sur Android et j'ai commencer à suivre les cours.

    Je n'arrive pas à basculé de mon l'atout main. Vers la page game.

    Je n'est pas de message d'erreur.

    Voici le code:

     public class MainActivity extends AppCompatActivity {
    
        private TextView mGreetingText;
    
        private EditText mNameInput;
    
        private Button mPlayButton;
    
        @Override
    
        protected void onCreate(Bundle savedInstanceState) {
    
            super.onCreate(savedInstanceState);
    
            setContentView(R.layout.activity_main);
    
            mGreetingText = (TextView) findViewById(R.id.activity_main_greeting_text);
    
            mNameInput = (EditText) findViewById(R.id.activity_main_name_input);
    
            mPlayButton = (Button) findViewById(R.id.activity_main_play_btn);
    
            mPlayButton.setEnabled(false); //désactivation du bouton validation
    
            mNameInput.addTextChangedListener(new TextWatcher() {
    
                @Override
    
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    
                }
    
                @Override
    
                public void onTextChanged(CharSequence s, int start, int before, int count) {
    
                    mPlayButton.setEnabled(s.toString().length() !=0);
    
                } //si le champs texte est différent de 0 alors le champs buton sera activé
    
                @Override
    
                public void afterTextChanged(Editable s) {
    
                }
    
            });
    
            //lance l'application lors du click
    
            mPlayButton.setOnClickListener(new View.OnClickListener() {
    
                @Override
    
                public void onClick(View v) {
    
                }
    
            });
    
        }
    
        public void onClickPlay(View view) {
    
            Intent intent = new Intent(MainActivity.this, GameActivity.class);
    
            startActivity(intent);
    
        }



    ________________
    et voici le layout 
     <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="20dp"
        tools:context=".MainActivity">
        <TextView
            android:id="@+id/activity_main_greeting_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/your_name"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <EditText
            android:id="@+id/activity_main_name_input"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="@string/txt_name"
            app:layout_constraintTop_toBottomOf="@id/activity_main_greeting_text"
            app:layout_constraintLeft_toLeftOf="parent"
         />
        <Button
            android:id="@+id/activity_main_play_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/btn_valide_name"
            app:layout_constraintTop_toBottomOf="@id/activity_main_name_input"
            app:layout_constraintRight_toRightOf="parent"
            android:onClick="onClickPlay" />
    </androidx.constraintlayout.widget.ConstraintLayout> 

    -
    Edité par Fonkyjoy 9 avril 2021 à 9:13:41

    • Partager sur Facebook
    • Partager sur Twitter
      11 avril 2021 à 8:58:58

      Bonjour l'écouteur de click sur le boutton qui est posé depuis le controller de l'activité et vide

             mPlayButton.setOnClickListener(new View.OnClickListener() {
       
                 @Override
       
                 public void onClick(View v) {
       
                 }
       
             });

      Peut être que de déplacé le corps de la méthode onClickPlay dans l'écouteur déclencherait l'action souhaitais:

      //lance l'application lors du click
      mPlayButton.setOnClickListener(new View.OnClickListener() {
      
          @Override
          public void onClick(View v) {
              Intent intent = new Intent(MainActivity.this, GameActivity.class);
              startActivity(intent);
          }
      
      });



      Il y à bien un attribut android:onClick sur le Boutton du document XML qui fait référence à la méthode onClickPlay:

       <Button
              android:id="@+id/activity_main_play_btn"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="@string/btn_valide_name"
              app:layout_constraintTop_toBottomOf="@id/activity_main_name_input"
              app:layout_constraintRight_toRightOf="parent"
              android:onClick="onClickPlay" />

      Si la méthode ne s'exécute pas tu peut regardé du côté vue du document dans les attributs du Boutton il doit y avoir l'attribut onClick présenté avec une liste déroulante et la liste déroulante doit contenir les activités qui implémentent une méthode onClickPlay valide il faut sélectionné l'activite MainActivity pour que Android sache à quelle activité la méthode onClickPlay fait référence.

      Mais si tu attache l'écouteur d'événement dans le document et dans le controller il se déclenchera 2 fois.

      • Partager sur Facebook
      • Partager sur Twitter

      suggestion de présentation.

        11 avril 2021 à 10:04:51

        Merci beaucoup. C'était bien sa. J'avais trouvée la solution hier soir et j'avais oublié de mettre en résolu.

        Avec ta réponse c'est beaucoup plus clair.

        • Partager sur Facebook
        • Partager sur Twitter

        Intent android

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown