아마도 안드로이드가 Java8의 람다표현식을 기본으로 지원하기 때문에 착각하신 것 같아요. 메소드가 하나인 인터페이스의 인스턴스는 간략한 형태로 고쳐쓸 수 있고 안드로이드 스튜디오가 그걸 권장하기 때문에 회색으로 보여주는 걸로 보여요.
예를 들면
btn_register.setOnClickLisetner(new View.OnClickListner() {
@Override
public void onClick(View view) {
}
});
위에서 View.OnClickListener는 onClick 메소드를 하나가진 인터페이스의 인스턴스죠. 이런 경우는 new 키워드와 인터페이스명, 메소드 선언부를 생략하고 메소드 파라미터와 onClick에 필요한 코드만 바로 작성할 수 있습니다. 즉 아래처럼 됩니다.
btn_register.setOnClickLisetner{ view ->
// 메소드 몸체
}
위처럼 다 생략하고 view라는 인자명과 화살표 ->를 쓰신 후에 메소드 코드를 바로 작성하시면 됩니다. view 인자를 사용하지 않으면 이것도 생략하실 수 있습니다.
btn_register.setOnClickLisetner {
// 메소드 몸체
}
람다표현식의 기능이 이것말도도 좀 더 있지만, 질문과 관련된 내용은 이걸로 충분할 것 같습니다.
이점은, 쓸데없는 new 와 인터페이스명, 메소드명까지 읽어야할 필요가 없기 때문에 코드가 간결해 보입니다. 모던한 랭귀지들은 지원하는 기능이라고 보시면 되구요, 람다표현식을 아는 개발자들은(대부분일겁니다) 사용을 합니다. 참고로 Fucntional programming(함수형 프로그래밍)을 하려면 람다가 꼭 필요하죠. 그래서 Kotlin이 메소드 대신이 함수를 사용하는 이유이기도 합니다.