Partage
  • Partager sur Facebook
  • Partager sur Twitter

{{Titre incorrect}} Override qui ne fonctionne pas ?

Changement de vues avec Android

21 janvier 2012 à 10:29:41

Bonjour,

Après avoir suivi le tutos qui expliquent la réalisation de vue avec Android, je ne parvient pas réaliser ce que je voulais.
j'ai créé une page d'authentification (login et password) avec un bouton de connexion.
Lorsque je cliques sur le bouton connexion, j'ai créé une vue avec un chargement (il je vas vérifier en base de donnée si le login existe et si le mot de passe match).

Voici le code de ma classe mère :

public class Infin1tyActivity extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        OnClickListener 		ButtonConnexion = new OnClickListener()
        {
   /* Lorsque j'override comme dans le tutos, je ne peut  plus compiler "Multiple markers at this line
	- The method onClick(View) of type new View.OnClickListener(){} must override a superclass 
	 method"
Donc, j'ai mis en commentaire //@Override ; je compile mais ma vue ne change pas...
*/
        	//@Override
        	//public abstract void onClick(android.view.View arg0);
        	public void 		onClick(View currentView)
        	{
        		Intent intent = new Intent(Infin1tyActivity.this, DisplayLoadingActivity.class);
        		// Intent.putExtra("login", loginStr);
        		// Intent.putExtra("password", passStr);
        		startActivity(intent);
        	}    
        }; 
     Button bouton = (Button) findViewById(R.id.connect);
     bouton.setOnClickListener(ButtonConnexion);
    }
};


Je suis bloqué, avez-vous une idée ?

Merci,
Infin1ty
  • Partager sur Facebook
  • Partager sur Twitter
6 février 2012 à 9:28:28

Salut, essaye ça :
public class Infin1tyActivity extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
     Button bouton = (Button) findViewById(R.id.connect);
     bouton.setOnClickListener(ButtonConnexion); 
       }
        OnClickListener ButtonConnexion = new OnClickListener()
        {
        	@Override
        	public void onClick(View currentView)
        	{
        		Intent intent = new Intent(Infin1tyActivity.this, DisplayLoadingActivity.class);
        		// Intent.putExtra("login", loginStr);
        		// Intent.putExtra("password", passStr);
        		startActivity(intent);
        	}    
        }; 
}
  • Partager sur Facebook
  • Partager sur Twitter
6 février 2012 à 14:04:43

Salut,

Peux-tu éditer ton titre afin de le rendre conforme aux règles stp ?
  • Partager sur Facebook
  • Partager sur Twitter
9 février 2012 à 1:13:02

Bonsoir,

Je n'ai pas totalement compris ton problème mais je peux te dire que ton code ne peut pas fonctionner actuellement.
Voici l'endroit où ça ne va pas :
OnClickListener ButtonConnexion = new OnClickListener()
{
      @Override
      public void onClick(View currentView)
      {
            Intent intent = new Intent(Infin1tyActivity.this, DisplayLoadingActivity.class);
            // Intent.putExtra("login", loginStr);
            // Intent.putExtra("password", passStr);
            startActivity(intent);
      }    
};

(Je me suis basé sur le code de Webmind Decter qui n'est pas correcte non plus mais plus claire)

En faite, dans ta méthode onClick, tu n'es plus dans la classe de l'activité mais dans une classe anonyme de OnClickListener.
Tu ne peux donc pas appeler startActivity(intent) à partir de là.
Je te conseil de mettre une méthode privé au niveau de ta classe Infin1tyActivity et de l'appeler dans onClick.

Si ce n'est pas ça, quel est ton import poir OnClickListener ?
  • Partager sur Facebook
  • Partager sur Twitter
Si vous voulez me retrouver, rendez-vous sur ZesteDeSavoir.