Kotlin 과 Android 의 기묘 한 여행-함수 확장(4)

2833 단어 android
마음 만 먹 으 면 세상 에 못 할 일이 없다.
앞의 블 로그 에서 우 리 는 Kotlin 에서 어떻게 컨트롤 을 찾 는 지 배 웠 습 니 다.매우 편리 하지 않 습 니까?오늘 은 여러분 에 게 더욱 편리 한 용법 을 알려 드 렸 습 니 다.그것 이 바로 확장 함수 입 니 다.확장 함 수 는 어떻게 사용 합 니까?서 두 르 지 마 세 요.다음은 여러분 께 알려 드 리 겠 습 니 다.
자바 에 있 는 코드 를 먼저 보 여 드 리 겠 습 니 다.
TextView textView = findViewById(R.id.textView);


textView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Toast.makeText(TwoActivity.this, "   ", Toast.LENGTH_SHORT).show();
    }
});

여러분 들 이 이 코드 에 대해 이미 매우 잘 알 고 있다 고 믿 습 니 다.그러면 이 코드 는 Kotlin 에서 어떻게 써 야 합 니까?여러분 은 아래 의 것 을 보 실 수 있 습 니 다.
button.setOnClickListener { toast("      ") }

여기 서 보면 네 마음속 에 이런 말 이 나 올 것 이다.아이고,내 가 갈 게..........................................................................
findviewbyid
지난 편 에 서 는 Kotlin 에서 컨트롤 을 찾 을 필요 가 없다 고 말 했 습 니 다.컨트롤 ID 를 직접 사용 하면 컨트롤 을 일련의 조작 을 할 수 있 기 때문에 FindViewbyid 는 이 단 계 를 생략 할 수 있 습 니 다.
setOnClickListener
Kotlin 에서 의 감청 은 이렇게 쓸 수 있 습 니 다.안의 인 터 페 이 스 를 실현 하지 않 아 도 됩 니 다.그래서 코드 를 절약 하고 Toast 를 출력 하 는 것 이 바로 아래 스타일 입 니 다.
button.setOnClickListener {

     Toast.makeText(this,"hello lambda",Toast.LENGTH_SHORT).show()

    }

이렇게 자바 에 비해 코드 를 많이 줄 였 지만,우 리 는 이것 에 만족 하지 않 을 것 입 니 다.사실,우 리 는 좀 더 생략 할 수 있 습 니 다.
확장 함수
함수 확장 은 계승 하지 않 고 임의의 종 류 를 확장 할 수 있 습 니 다.밤 을 들 어 라!Toast 를 가지 고 말 하면 곳곳에서 사용 할 수 있 습 니 다.우 리 는 kt 파일 을 새로 만 들 었 습 니 다.ext 라 고 하 는데 다음 과 같은 코드 를 적 었 습 니 다.
fun Context.toast(message:String,length : Int = Toast.LENGTH_SHORT){
  Toast.makeText(this,message,length)
}

개인 적 으로 이것 은 추출 도구 류 와 같 습 니 다.이 도구 류 를 추출 하여 공공 도구 로 만 드 는 방법 입 니 다.프로젝트 에서 어느 곳 에서 든 사용 할 수 있 습 니 다.그리고 우리 가 방금 한 코드 는 아래 의 모습 이 되 었 습 니 다.
button.setOnClickListener { toast("      ") }

신기 하지 않 나 요?또 하나의 기술 을 배 웠 으 니 어서 가서 해 보 세 요.

좋은 웹페이지 즐겨찾기