*<Preference /> 클릭 이벤트(setOnPreferenceClickListener, public boolean onPreferenceTreeClick)
-Android의 Preference 화면에서 사용자가 환경 설정 항목을 클릭할 때 호출되는 이벤트 처리 방법
-public boolean onPreferenceTreeClick: (적용)
onPreferenceTreeClick는 Preference 화면 전체에 대한 클릭 이벤트를 처리하는 메서드입니다.
PreferenceFragment나 PreferenceActivity에서 오버라이드하여 사용합니다.
클릭 이벤트가 발생한 Preference 요소의 키(Key)를 가져와서 처리할 수 있습니다.
여러 개의 Preference 요소가 있을 경우에도 하나의 메서드에서 모든 클릭 이벤트를 처리할 수 있으므로 코드 중복을 방지할 수 있습니다.
효율성 면에서는 public boolean onPreferenceTreeClick가 더 효율적입니다.
//비밀번호 변경 다이얼로그
@Override
public boolean onPreferenceTreeClick(@NonNull Preference preference) {
String setPasswordKey = preference.getKey();
if (setPasswordKey.equals("setPassword")) setCustomDialogPw();
return false;
}//onPreferenceTreeClick
-setOnPreferenceClickListener:
setOnPreferenceClickListener는 개별적인 Preference 요소에 대해 클릭 이벤트를 처리하는 메서드입니다.
개별 Preference 요소마다 setOnPreferenceClickListener를 호출하여 클릭 이벤트를 처리할 수 있습니다.
일반적으로 사용자가 특정 Preference를 클릭할 때 추가 작업을 수행하고자 할 때 유용합니다.
여러 개의 Preference 요소가 있을 경우 각 Preference에 대해 개별적으로 설정해야 하므로 코드의 중복이 발생할 수 있습니다.
Preference pa;
pa = findPreference("setPassword");
pa.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(@NonNull Preference preference) {
setCustomDialogPw();
return false;
}
});
-setOnPreferenceClickListener는 각 Preference 요소에 대해 개별적으로 설정되어야 하므로, 여러 개의 Preference가 있는 경우 중복된 코드가 발생할 수 있습니다. 이는 유지보수가 어렵고 코드의 가독성을 해칠 수 있습니다.
반면 public boolean onPreferenceTreeClick는 Preference 화면 전체에서 클릭 이벤트를 처리하므로, 하나의 메서드에서 모든 클릭 이벤트를 처리할 수 있습니다. 이는 코드의 중복을 피하고 가독성을 높일 수 있습니다.
따라서 여러 개의 Preference 요소를 처리해야하는 경우, public boolean onPreferenceTreeClick를 사용하여 코드를 간결하게 유지하고 효율적인 이벤트 처리를 할 수 있습니다.
'+)기록 > 과제' 카테고리의 다른 글
정리사항 71 - GLSurfaceView(SurfaceView와 유사) (0) | 2023.06.15 |
---|---|
정리사항 70 - 시퀀스다이어그램 작성(상시인식 구현) (0) | 2023.06.09 |
정리사항 68 - android.graphics.Rect(직사각형) (0) | 2023.06.09 |
정리사항 67 - 스레드에서 액티비티 완전 실행 후 액티비티의 함수 실행 (0) | 2023.05.26 |
정리사항 66 - 커스텀 다이얼로그 제어(키보드 상호작용) (0) | 2023.05.24 |