Android, conversion

Résolu
Pepito39 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   -  
Pepito39 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaite récuperer l'information d'une zone de texte, mais j'ai deux erreurs:
- The type new View.OnClickListener(){} must implement the inherited abstract method View.OnClickListener.onClick(View)
-Type mismatch: cannot convert from String to R.string

Voici la partie de code où les erreurs surviennent:
private OnClickListener rechercheListener = new OnClickListener() {
    	public void OnClick(View v)
    	{
    		string nom = nomclient.getText().toString();
    	}
    };


Un peu d'aide ne serait pas de refus. Merci d'avance :)

14 réponses

  1. scinarf Messages postés 1183 Statut Membre 294
     
    A Quel objet s'applique le listener ?

    Et le nom de la méthode à surcharger s'appel

    @Override
    public void onClick(View v)
    {
    }
    0
  2. Pepito39 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   1
     
    Le listener s'applique à un bouton
    Oui, j'ai modifié, merci :) et en débuguant l'erreur ne s'affiche plus.
    0
  3. Pepito39 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   1
     
    Et sinon, pour la conversion, tu aurais une idée?
    0
  4. scinarf Messages postés 1183 Statut Membre 294
     
    Quelle est la Class support de nomclient
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Pepito39 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   1
     
    Je l'ai déclaré dans la class MainActivity qui hérite d'Activity
    0
  7. scinarf Messages postés 1183 Statut Membre 294
     
    Oui mais c'est que type d'bjet un String ? une textView ? ...
    0
  8. stagiaire_1 Messages postés 18 Statut Membre 8
     
    Re bonjour,

    Voici la syntaxe que j'utilise pour mettre des listeners sur des boutons :

    // référencement à l'interface graphique
    btn = (Button) findViewById(R.id.btn);

    // Cette fonction est appellée lorsque l'utilisateur clique sur le boutton
    btn.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
    // ton code
    }
    });

    Si tu fais un copier / coller, ça devrait marcher. Tu dois mettre cette méthode dans ton onCreate de ton activity.

    Pour la conversion : De quel type est "nomclient" ? EditText ? TextView? Autre?
    0
    1. Pepito39 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   1
       
      Merci bien :)
      C'est un EditText
      0
    2. scinarf Messages postés 1183 Statut Membre 294
       
      Pourquoi utiliser une inner class pour faire ça ? Et non pas une véritable Class déclarée dans son propre .java ! ?
      0
    3. Pepito39 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   1
       
      Ah ça, je sais pas, je débute, et en suivant quelques tutos sur le net, j'en suis arriver à cette solution... ^^
      0
    4. scinarf Messages postés 1183 Statut Membre 294
       
      Alors je vous conseil de créer un nouveau fichier java pour déclarer chacune de vos class.

      Au lien d'avoir

      btn.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
      // ton code
      }
      });

      Vous aurez

      public class votreClass extends ce qu'elle hérite implements ce que vous voulez
      {

      }

      Et pour fais le set :
      private votreClass myInstancedeClass;

      myInstancedeClass = new votreClass()
      btn.setOnClickListener(myInstancedeClass);

      De cette manière on évite les fuites de mémoires du a une mauvaise gestion d'un GC capricieux. Et surtout on évite des références non souhaitées ! qui empêche le GC de fonctionner correctement.
      0
    5. Pepito39 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   1
       
      D'accord, merci du conseil, je vais essayer de faire comme ça alors! :)
      0
  9. Pepito39 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   1
     
    Aah ^^ C'est un EditText
    0
  10. stagiaire_1 Messages postés 18 Statut Membre 8
     
    Peut-être le S de "string nom" qui n'est pas en majuscule? l'objet "string" est différent de l'objet "String".
    0
  11. Pepito39 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   1
     
    En effet, c'était bien ça!
    Merci beaucoup! :D
    0
  12. scinarf Messages postés 1183 Statut Membre 294
     
    EN java c'est String mais logiquement le compilateur devrai souligner directement une erreur comme celle la.

    Mettez une majuscule à String.

    Et Que objet est utilisé pour le setOnClickListener(rechercheListener ) ?
    0
  13. stagiaire_1 Messages postés 18 Statut Membre 8
     
    Avec le plugin SDK, l'objet "string" existe, il se trouve dans la bibliothèque android.R. S'il a fait un import de cette bibliothèque, c'est normal que l'erreur n'est pas directement soulignée mais c'est l'expression qui l'est.
    0
  14. scinarf Messages postés 1183 Statut Membre 294
     
    Autant pour moi alors, je viens d'apprendre quelques chose merci ;)
    0
  15. Pepito39 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   1
     
    L'objet pour le setOnClickListener(rechercheListener) est un bouton
    0