반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 스프링 공부
- 스프링공부
- 프로그래머스
- 플러터 개발
- JPA예제
- 기술공부
- JPA공부
- nestjs공부
- 플러터 공부
- 기술면접공부
- 자료구조공부
- JPA
- K8S
- 스프링부트공부
- nestjs
- JPA스터디
- 자바공부
- querydsl
- nestjs스터디
- DDD
- JPA 공부
- 코테공부
- 스프링
- Kafka
- Flutter
- 카프카
- 알고리즘공부
- 스프링부트
- 코테준비
- Axon framework
Archives
- Today
- Total
DevBoi
[Flutter] SharedPreferences 데이터 삭제 및 수정 본문
반응형
1. 슬라이드로 밀면 삭제되는 위젯은
Dismissed 로 감싸주면 된다. 기존 소스에서 아래로 바꿨다.
child: Dismissible(
key: UniqueKey(),
onDismissed: (direction) {
if(list.length == 1){
list = <Memo>[];
}
else {
list.removeAt(index);
}
memoInterface.saveList(list);
},
child: Container(
height: 80,
margin: const EdgeInsets.symmetric(
horizontal: 16,
vertical: 4,
),
decoration: BoxDecoration(
color: list[index].completeYn == "N" ? Colors
.blueAccent : Colors.grey,
borderRadius: BorderRadius.circular(20),
),
alignment: Alignment.center,
child: Text(list[index].content),
))
데이터 삭제 는 아래와 같이 구현했다.
삭제는 list에서도 Removeat 으로 삭제 처리를하고
memoInterface에서는 삭제된 리스트를 다시 리스트 채로 넣어주는 작업을 한다.
쉽게 얘기하면, 그냥 변경된 리스트로 덮어쓰는것이다.
오히려 좋아.
그리고 수정은 아래와 같이 진행했다.
return InkWell(
onTap: () {
if("Y".compareTo(list[index].completeYn)==0)
list[index].completeYn ='N';
else {
list[index].completeYn = 'Y';
}
setState(() {
});
memoInterface.saveList(list);
},
completeYn 은 누를때마다 상태만 변경할수있도록 수정하고, 다시 변경된 리스트 채로 넣어주는 로직을 넣어줬다.
삭제가 생기던 변경이 되던 변경이 된 리스트를 다시 채로 넣어서, 덮어쓰는 로직을 구현하니까 잘 된다.
child: Dismissible(
key: UniqueKey(),
onDismissed: (direction) {
if(list.length == 1){
list = <Memo>[];
}
else {
list.removeAt(index);
}
memoInterface.saveList(list);
},
참고로 저기 Dismissible 에서도, 키를 UniqueKey를 전달해주면,
알아서 잘 캐치한다.
반응형
'[Mobile] > [Flutter]' 카테고리의 다른 글
[Flutter] BoilerTemplate App 만들기 (0) | 2023.08.02 |
---|---|
[Flutter] IOS 앱 빌드 및 배포 (0) | 2023.07.26 |
[Flutter] SharedPreferences 사용하여 입/출력 정리 (0) | 2023.07.25 |
[Flutter] shared_preferences 사용 (0) | 2023.07.23 |
[Flutter] 팝업 띄우기 (0) | 2023.07.23 |