Méthode Android setOnClickListener - Comment ça marche?

J'ai du mal à comprendre ce code. Je reçois ce que findViewById obtiendrez le bouton de widget et puis il va la lancer. Ensuite, il va utiliser la touche pour appeler le setOnClickListener méthode. Cependant, je ne sais pas ce que c'est que l'argument transmis dans les setOnClickListener et je n'ai jamais vu de code comme ça avant. Comment est-ce qu'il crée un nouvel objet, mais est capable de créer une méthode de son propre sein d'une autre méthode argument? Ce serait génial si quelqu'un pouvait expliquer cela. En outre, ce type d'objet est la setOnClickListener méthode prenant en?

btn = (Button)findViewById(R.id.firstButton);
btn.setOnClickListener(new View.OnClickListener()
{
    @Override
    public void onClick(View v)
    {
        tv.setText(months[rand.nextInt(12)]);
        tv.setTextColor(Color.rgb(rand.nextInt(255)+1, rand.nextInt(255)+1, rand.nextInt(255)+1));
    }
});

source d'informationauteur rayleigh