Os adaptadores de vinculação são responsáveis por realizar as chamadas de framework adequadas para definir valores. Um exemplo é a configuração de um valor de propriedade como a chamada para o método setText(). Outro exemplo é a definição de um listener de eventos como a chamada para o método setOnClickListener().
O exemplo acima é um pouco mais complicado que o normal porque a classe View usa os métodos addOnAttachStateChangeListener() e removeOnAttachStateChangeListener(), em vez de um método setter para OnAttachStateChangeListener. A classe android.databinding.adapters.ListenerUtil ajuda a rastrear os listeners anteriores para que eles possam ser removidos no adaptador de vinculação.
Ao fazer anotações nas interfaces OnViewDetachedFromWindow e OnViewAttachedToWindow com @TargetApi(VERSION_CODES.HONEYCOMB_MR1), o gerador de código de vinculação de dados sabe que o listener só pode ser gerado ao ser executado no Android 3.1 (API de nível 12) ou posteriores, que são as mesmas versões compatíveis com o método addOnAttachStateChangeListener().
O objeto userMap na expressão retorna um valor, que é automaticamente transmitido para o tipo de parâmetro encontrado no método setText(CharSequence), usado para definir o valor do atributo android:text. Se o tipo de parâmetro for ambíguo, será necessário transmitir o tipo de retorno na expressão.