Question

Je suis 4 que tous les comprennent activités un xml-pied de page qui contient 4 boutons (un pour chaque activité). Je voudrais maintenant onclicklisteners de configuration à ces boutons (c'est un menu auto fait dans le pied de page).

La question est, comment puis-je utiliser les auditeurs afin que je puisse réutiliser le code? J'ai deux idées:

  1. Créer une classe qui implémente onclicklistener et dans toutes les activités que je recevrais les boutons, puis créer une nouvelle instance de la classe d'auditeur et faire button.setOnClickListener (onClickListener) Le problème est que dans la classe d'auditeur, comment pourrais-je vérifier quel bouton appelé l'événement? Et comment pourrais-je créer une intention de démarrer une activité, je généralement faire: = intention d'intention nouvelles intention (FromActivity.this, ToAcitivty.class) Mais je n'ai pas la référence à FromActivity.

  2. Créer une classe de base qui va de l'activité, puis les 4 activies prolongeront à partir de la classe de base. Je voudrais ensuite configurer les auditeurs de la classe de base. Le problème est que je ne peux pas obtenir les références aux boutons en faisant Bouton button1 = (Bouton) findViewById (R.id.menu_button1); button1 sera nulle. Je ne l'ai pas encore appelé setEventView parce que cela doit être fait dans l'activité pas dans la classe de base.

Toutes les idées?

Merci

Était-ce utile?

La solution

Même code est ici:

    public class MyClass extends Activity implements View.OnClickListener{
        btnA=(Button)findViewById(R.id.btnA);
        btnA.setOnClickListener(this);
        btnB=(Button)findViewById(R.id.btnB);
        btnB.setOnClickListener(this);


    }
    @Override
    public void onClick(View v)
    {
        Button clickedButton = (Button) v;
        switch (clickedButton.getId())
        {
            case R.id.btnA:
                Intent regIntent = new Intent(Home.this,Registration.class);
                startActivityIfNeeded(regIntent, 1);
                break;
            case R.id.btnB:
                //Some code
                break;
        }
    }

(sous la direction que la première ligne d'origine est rompu sur le format de code.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top