tahakaan
password ve mail bilgilerini aldığını varsayarsak
final TextEditingController _emailController = TextEditingController();
final TextEditingController _passwordController = TextEditingController();
bool? isChecked;
//initstate içinde isChecked daha önce işaretlenmiş ise değişkenleri dolduruyoruz.
void initState() {
getRemember();
}
//statefull widget
return
isChecked ==null
? const Center(child: CircularProgressIndicator())
: : Column(
...
Checkbox(
checkColor: Colors.white,
fillColor: MaterialStateProperty.resolveWith(getColor),
value: isChecked!,
onChanged: (bool? value) {
setState(() {
isChecked = value!;
});
},
)
);
....
Future<void> getRemember()
{
final prefs = await SharedPreferences.getInstance();
isChecked = prefs.getBool('remember')??false;
if(isChecked){
_emailController.text= prefs.getString('email')??"";
_passwordController.text= prefs.getString('password')??"";
}
setState(() {});
}
//checkbox işaretliyse veriyi değilse boş string kaydediyoruz. Bunu login olabiliyorsa tetikliyoruz. sayfa değişmeden önce.
Future<void> setRemember()
{
final prefs = await SharedPreferences.getInstance();
await prefs.setString('email', isChecked ? _emailController.text : "");
await prefs.setString('password', isChecked ? _passwordController.text : "");
await prefs.setBool('remember', isChecked );
}
Temel mantık bu şekilde. Kendi ekranına uygun yerlere uyarlayarak kullanabilirsin.