사용자가 필터링한 검색 결과를 저장하려면 Flutter에서 shared_preferences 패키지를 사용할 수 있습니다. shared_preferences는 앱 내에 키-값 쌍을 사용하여 데이터를 영구적으로 저장하는 기능을 제공합니다.
첫 번째로, shared_preferences 패키지를 프로젝트에 추가해야 합니다. pubspec.yaml 파일에 다음 의존성을 추가하고 패키지를 가져올 수 있습니다:
dependencies:
shared_preferences: ^2.0.6
이제 패키지를 가져와서 사용자가 필터링한 결과를 저장하는 방법을 알아보겠습니다.
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
// 검색 결과를 저장할 키를 정의합니다.
const String FILTERED_RESULTS_KEY = 'filtered_results';
class SearchPage extends StatefulWidget {
@override
_SearchPageState createState() => _SearchPageState();
}
class _SearchPageState extends State<SearchPage> {
List<String> filteredResults = [];
@override
void initState() {
super.initState();
// 앱이 시작될 때 저장된 검색 결과를 가져옵니다.
_loadFilteredResults();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Search Page'),
),
body: ListView.builder(
itemCount: filteredResults.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(filteredResults[index]),
);
},
),
floatingActionButton: FloatingActionButton(
onPressed: () async {
// 사용자가 필터링한 결과를 추가합니다.
await _addFilteredResult();
},
child: Icon(Icons.add),
),
);
}
Future<void> _loadFilteredResults() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
setState(() {
// 저장된 검색 결과를 가져와서 필터링된 결과에 할당합니다.
filteredResults = prefs.getStringList(FILTERED_RESULTS_KEY) ?? [];
});
}
Future<void> _addFilteredResult() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
// 사용자가 필터링한 결과를 추가합니다.
String newResult = 'Filtered Result ${filteredResults.length + 1}';
setState(() {
// 필터링된 결과에 추가합니다.
filteredResults.add(newResult);
});
// 추가된 결과를 저장합니다.
await prefs.setStringList(FILTERED_RESULTS_KEY, filteredResults);
}
}
위의 예제 코드에서는 SearchPage StatefulWidget을 만들고, 필터링된 결과가 표시되는 ListView를 구성합니다. 필터링된 결과는 filteredResults 리스트에 저장되고, 필터링된 결과를 추가할 때마다 shared_preferences를 사용하여 저장됩니다.
_loadFilteredResults 함수는 앱이 시작될 때 저장된 검색 결과를 가져와 filteredResults 리스트에 할당합니다. _addFilteredResult 함수는 새로운 검색 결과를 생성하고 filteredResults에 추가한 다음, 저장합니다. 새로운 결과가 추가될 때마다 setState 함수를 호출하여 UI를 업데이트합니다.
이제 사용자가 필터링한 검색 결과가 shared_preferences를 사용하여 영구적으로 저장되었습니다. 재시작하더라도 검색 결과가 유지될 것입니다.
자세한 내용은 shared_preferences 패키지의 문서를 참조하시기 바랍니다.