Android, conversion

Résolu
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. A Quel objet s'applique le listener ?

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

    @Override
    public void onClick(View v)
    {
    }
    0
    1. Le listener s'applique à un bouton
      Oui, j'ai modifié, merci :) et en débuguant l'erreur ne s'affiche plus.
      0
      1. Et sinon, pour la conversion, tu aurais une idée?
        0
        1. Quelle est la Class support de nomclient
          0
          1. Je l'ai déclaré dans la class MainActivity qui hérite d'Activity
            0
            1. Oui mais c'est que type d'bjet un String ? une textView ? ...
              0
              1. 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. Merci bien :)
                  C'est un EditText
                  0
                2. Pourquoi utiliser une inner class pour faire ça ? Et non pas une véritable Class déclarée dans son propre .java ! ?
                  0
                3. Ah ça, je sais pas, je débute, et en suivant quelques tutos sur le net, j'en suis arriver à cette solution... ^^
                  0
                4. 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. D'accord, merci du conseil, je vais essayer de faire comme ça alors! :)
                  0
              2. Aah ^^ C'est un EditText
                0
                1. Peut-être le S de "string nom" qui n'est pas en majuscule? l'objet "string" est différent de l'objet "String".
                  0
                  1. En effet, c'était bien ça!
                    Merci beaucoup! :D
                    0
                    1. 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
                      1. 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
                        1. Autant pour moi alors, je viens d'apprendre quelques chose merci ;)
                          0
                          1. L'objet pour le setOnClickListener(rechercheListener) est un bouton
                            0