Partage
  • Partager sur Facebook
  • Partager sur Twitter

Argument setOnClickListener Android Studio

Cours : Créez des applications pour Android - Les widgets...

Sujet résolu
    21 septembre 2017 à 17:34:44

    Bonjour à tous,

    Débutant en programmation, j'essaye de suivre le cours "Créez des applications pour ANDROID". Dans le dernier exercices du chapitre suivant :  https://openclassrooms.com/courses/creez-des-applications-pour-android/les-widgets-les-plus-simples

    On à les lignes de codes ci-dessous :

    envoyer = (Button)findViewById(R.id.calcul);
    envoyer.setOnClickListener(envoyerListener);

    Cependant quand je les recopies dans mon programme, il n'a pas l'air d'accepter l'argument "envoyerListerner" du setOnClickListener. L'erreur renvoyer est "Cannot resolve symbol 'envoyerListener'".

    Je ne suis pas sur de bien comprendre l'argument que doit prendre setOnclickListener. Si j'ai bien compris ces deux lignes de codes, on va dans un premier temps récupérer la vue associée au bouton "envoyer" puis on y associe un listener ce qui reviens à associer une classe au bouton ?

    Dans un précédent exercice nous avions utilisé l'argument "(this)". Pourquoi ce n'est pas possible ici ?

    Voilà, j’espère que ma question est claire et pas trop basique (ayez pitié de mon incompétence je travail uniquement sur MATLAB ^^").

    Merci :)



    • Partager sur Facebook
    • Partager sur Twitter
      21 septembre 2017 à 17:41:24

      Salut,

      Le listener est déclaré en dessous

      // Uniquement pour le bouton "envoyer"
        private OnClickListener envoyerListener = new OnClickListener() {
          @Override
          public void onClick(View v) {
      ...
      

      C'est la méthode onClick de ton listener qui sera appellée quand tu cliqueras sur le bouton

      -
      Edité par BeeApps 21 septembre 2017 à 17:42:00

      • Partager sur Facebook
      • Partager sur Twitter
        21 septembre 2017 à 19:26:35

        Ah ok je comprends merci, mais pourquoi automatiquement Android Studio m'écris :

        private View.OnClickListener envoyerListener=new View.OnClickListener()

        Au lieu de

        private OnClickListener envoyerListener = new OnClickListener() 


        C'est car j'ai mal gérer les importations de packages au début de mon programme ?



        • Partager sur Facebook
        • Partager sur Twitter
          1 novembre 2017 à 18:30:15

          Bonjours je dévelloppe en ce moment une application sur android studio, lors de la compilation mon programme compile mais une fois sur le telephone pour le lancer sa me met '[nom de l'app] a cessé de fonctionner' j'ai beau cherche pendant longtemps je ne vois pas d'ou vien l'erruer si quelqu'un pourrait m'aider merci ? (je suis novice au language java)

          AndroidManifest.xml

          <?xml version="1.0" encoding="utf-8"?>
          <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              package="com.ebenup.dreamteam.ebenup">
          
              <application
                  android:allowBackup="true"
                  android:icon="@mipmap/ic_launcher"
                  android:label="@string/app_name"
                  android:roundIcon="@mipmap/ic_launcher_round"
                  android:supportsRtl="true"
                  android:theme="@style/AppTheme">
                  <activity android:name=".MainActivity">
                      <intent-filter>
                          <action android:name="android.intent.action.MAIN" />
          
                          <category android:name="android.intent.category.LAUNCHER" />
                      </intent-filter>
                  </activity>
              </application>
          
          </manifest>

          activity_main.xml

          <?xml version="1.0" encoding="utf-8"?>
          <RelativeLayout 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:background="@drawable/ebenupfond"
              tools:context="com.ebenup.dreamteam.ebenup.MainActivity">
          
          
              <ImageView
                  android:id="@+id/imageView"
                  android:layout_width="280dp"
                  android:layout_height="90dp"
                  android:layout_alignParentTop="true"
                  android:layout_centerHorizontal="true"
                  android:layout_marginTop="42dp"
                  app:srcCompat="@drawable/logo_ebenup" />
          
              <EditText
                  android:id="@+id/editText"
                  android:layout_width="wrap_content"
                  android:layout_height="55dp"
                  android:layout_below="@+id/imageView"
                  android:layout_centerHorizontal="true"
                  android:layout_marginTop="107dp"
                  android:ems="10"
                  android:gravity="center"
                  android:hint="Utilisateur"
                  android:drawableLeft="@mipmap/ic_user"
                  android:inputType="textPersonName" />
          
              <EditText
                  android:id="@+id/editText2"
                  android:layout_width="wrap_content"
                  android:layout_height="55dp"
                  android:layout_alignStart="@+id/editText"
                  android:layout_below="@+id/editText"
                  android:layout_marginTop="26dp"
                  android:ems="10"
                  android:gravity="center"
                  android:hint="Mot de passe"
                  android:drawableLeft="@mipmap/ic_lock"
                  android:inputType="textPassword" />
          
              <android.support.v7.widget.CardView
                  android:layout_width="300dp"
                  android:layout_height="50dp"
                  android:layout_alignStart="@+id/imageView"
                  android:layout_below="@+id/editText2"
                  android:layout_marginTop="64dp"
                  app:cardBackgroundColor="#FF4438"
                  app:cardCornerRadius="25dp">
          
                  <RelativeLayout
                      android:layout_width="match_parent"
                      android:layout_height="match_parent">
          
                      <TextView
                          android:id="@+id/textView"
                          android:layout_width="wrap_content"
                          android:layout_height="wrap_content"
                          android:text="CONNEXION"
                          android:textColor="#FFF"
                          android:textSize="18dp"
                          android:textStyle="bold"
                          android:layout_centerInParent="true"/>
                  </RelativeLayout>
              </android.support.v7.widget.CardView>
          </RelativeLayout>
          

          MainActivity.java

          package com.ebenup.dreamteam.ebenup;
          
                  import android.support.v7.app.AppCompatActivity;
                  import android.os.Bundle;
          
          public class MainActivity extends AppCompatActivity {
          
              @Override
              protected void onCreate(Bundle savedInstanceState) {
                  super.onCreate(savedInstanceState);
                  setContentView(R.layout.activity_main);
              }
          }
          

          Si vous voulez le dossier complet du programme il est possible de l'envoyer par mail si vous voulez jeter un coup d'oeil de plus près merci


          • Partager sur Facebook
          • Partager sur Twitter

          Argument setOnClickListener Android Studio

          × 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