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(" ") }
신기 하지 않 나 요?또 하나의 기술 을 배 웠 으 니 어서 가서 해 보 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.