어댑터에 대한 이해!
onBindViewHolder에서 데이터의 바인딩이 일어난다.
-> 이때 제대로된 데이터베이스의 값을 가지지 못한다.
=> 쓰레드 속도가 지멋대로임. 클래스 생성하여 함수를 실행하여 데이터를 읽는 것은 holder에 뷰가 바인딩되는 것보다 한참 느림.
이 함수로 데이터를 판별하려 하였으나 어댑터가 뷰를 바인딩하는 속도를 못 따라옴!
public boolean isExist(){
try {
databaseReference.child("TodoCell").child(currentUser).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for(DataSnapshot children: snapshot.getChildren()){
if (children.getKey().equals(displayDate)) {
cnt++;
Log.e("asdf", String.valueOf(cnt));
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
//디비를 가져오는 중 에러 발생 시
Log.e("FirebaseTodoCell", String.valueOf(error.toException()));
}
});
}catch (NullPointerException e){
Log.e("cntError", String.valueOf(cnt));
}finally{
Log.e("cnt", String.valueOf(cnt));
if(cnt > 0){
return true;
} else{
return false;
}
}
}
따라서, 미리 HashSet에 데이터를 집어넣고 onBindViewHolder에서 holder의 itemView의 날짜와 비교하여 값이 일치하는지 확인함.
'프로젝트 > 소프트웨어공학' 카테고리의 다른 글
[소프트웨어공학] Android Studio 이슈 #5 (0) | 2023.11.30 |
---|---|
[소프트웨어공학] Android Studio 이슈 #4 (0) | 2023.11.29 |
[소프트웨어공학] Android Studio 이슈 #3 (0) | 2023.11.24 |
[소프트웨어공학] Android Studio 이슈 #1 (0) | 2023.11.07 |