[flutter] shared_preferences 를 사용하여 사용자가 선택한 정렬 기준을 저장하는 방법은 무엇인가요?
Flutter 애플리케이션에서 사용자가 선택한 정렬 기준을 저장하려면 shared_preferences 패키지를 사용할 수 있습니다. 이 패키지는 키-값 형태로 데이터를 저장하고 로드하는데 사용됩니다.
아래는 사용자가 선택한 정렬 기준을 shared_preferences 에 저장하는 방법의 예시입니다.
- 먼저 shared_preferences 패키지를 프로젝트에 추가해야 합니다. pubspec.yaml 파일의 dependencies에 아래와 같이 추가해주세요.
dependencies:
flutter:
sdk: flutter
shared_preferences: ^2.0.6
- 다음으로, 정렬 기준을 설정하는 페이지에서 사용자가 선택한 값을 저장해야 합니다. 이를 위해 SharedPreferences 인스턴스를 생성하고 값을 저장하는 메서드를 작성합니다. 아래는 예시 코드입니다.
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class SortingPage extends StatefulWidget {
@override
_SortingPageState createState() => _SortingPageState();
}
class _SortingPageState extends State<SortingPage> {
String selectedSortOption = 'Name'; // 사용자가 선택한 정렬 기준
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Sorting Page'),
),
body: Column(
children: [
// 정렬 옵션을 선택할 수 있는 위젯들...
// 예시: 라디오 버튼으로 선택할 수 있다고 가정
ElevatedButton(
onPressed: () {
saveSortOption(selectedSortOption); // 정렬 기준을 저장하는 메서드 호출
Navigator.pop(context); // 이전 페이지로 돌아감
},
child: Text('Save'),
),
],
),
);
}
Future<void> saveSortOption(String sortOption) async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('sortOption', sortOption);
}
}
위 코드에서는 saveSortOption 메서드를 호출하여 사용자가 선택한 정렬 기준을 shared_preferences에 저장합니다. 키는 ‘sortOption’이고 값을 사용자가 선택한 정렬 기준으로 설정합니다.
- 이제 저장한 값을 다른 페이지에서 로드해볼 수 있습니다. 예를 들어, 정렬된 결과를 보여주는 페이지에서 사용자의 저장된 정렬 기준을 로드하고 적용하는 방법을 설명하겠습니다. 아래는 예시 코드입니다.
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
class SortedResultsPage extends StatefulWidget {
@override
_SortedResultsPageState createState() => _SortedResultsPageState();
}
class _SortedResultsPageState extends State<SortedResultsPage> {
String currentSortOption = 'Name'; // 현재 정렬 기준
@override
void initState() {
super.initState();
loadSortOption(); // 저장된 정렬 기준을 로드하는 메서드 호출
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Sorted Results Page'),
),
body: Column(
children: [
// 정렬된 결과를 보여주는 위젯들...
// 예시: ListView로 결과를 표시한다고 가정
],
),
);
}
Future<void> loadSortOption() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
String savedSortOption = prefs.getString('sortOption');
if (savedSortOption != null) {
setState(() {
currentSortOption = savedSortOption;
});
}
}
}
위 코드에서는 loadSortOption 메서드를 호출하여 저장된 정렬 기준을 shared_preferences에서 로드합니다. ‘sortOption’ 키의 값을 읽어온 후, 값이 존재한다면 currentSortOption 변수에 저장하고 상태를 변경하기 위해 setState 메서드를 호출합니다. 이후, currentSortOption 값을 사용하여 결과를 정렬하거나 표시할 수 있습니다.
이처럼 shared_preferences 패키지를 사용하여 Flutter 애플리케이션에서 사용자가 선택한 정렬 기준을 쉽게 저장하고 로드할 수 있습니다.