반응형
리스너가 람다로 대체 될 수 있다는 것은 무엇을 의미합니까?
나는 AlertDialog
정상적인 부정적 및 긍정적 인 버튼 클릭 리스너를 구현했습니다 .
전화를 걸었을 때 다음과 new DialogInterface.OnClickListener()
같은 제안이 표시되었습니다 Anonymous new DialogInterface.OnClickListener() can be replaced with lambda
. 오류나 큰 것이 아니라는 것을 알고 있지만이 제안은 정확히 무엇이며 이에 대해 무엇을 할 수 있습니까?
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setPositiveButton("Text", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// do something here
}
});
Android Studio V1.2.1.1 compileSdkVersion 22 buildToolsVersion "22.0.0" minSdkVersion 14 targetSdkVersion 22
이는 코드를 줄일 수 있음을 의미합니다.
람다 가 onClickListener()
없는 예 :
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do something here
}
});
다시 쓸 수 와 람다 :
mButton.setOnClickListener((View v) -> {
// do something here
});
같은 코드입니다. 많은 리스너를 사용하거나 IDE없이 코드를 작성할 때 유용합니다. 자세한 내용은 이를 확인 하십시오 .
이것이 귀하의 질문에 답하기를 바랍니다.
다음과 같이 간단합니다.
button.setOnClickListener(view -> username = textView.getText());
고전적인 새 DialogInterface.OnClickListener () 구현을 람다 식으로 바꾸려면 다음으로 충분합니다.
builder.setPositiveButton("resourceId", ((DialogInterface dialog, int which) -> {
// do something here
}));
그것은 단지 onClick 이벤트 매개 변수를 취하는 것입니다.
반응형
'IT Share you' 카테고리의 다른 글
Top 1 필드를 선택하고 지역 변수에 할당 (0) | 2020.12.15 |
---|---|
Visual Studio Code에서 솔루션 파일을 열 수 없습니다. (0) | 2020.12.15 |
ASP.Net-Core의 사용자 지정 인증 (0) | 2020.12.15 |
Log4Net "스키마 정보를 찾을 수 없습니다"메시지 (0) | 2020.12.15 |
Joda-Time 사용에 대한 단점이 있습니까? (0) | 2020.12.15 |