首页 > 解决方案 > 如何在 Flutter 中使用 Sharedpreferences 来创建个人资料页面?

问题描述

我想在 Flutter 中使用 sharedpreferences,以便在我的 Flutter 应用程序中创建用户个人资料页面。

这将是一个入职会话,以保存用户名、婚姻状况和生日。如果同一用户打开应用程序,它将自动通过入职会话并且应用程序的主屏幕将打开。

我不想使用登录过程。当用户打开应用程序时,如果用户完成入职,应用程序将自动识别用户。将有 3 个单独的页面,询问用户的姓名、年龄和性别。用户完成入职后,应用程序将保存用户的所有信息配置文件页面。UI 将类似于下面的视频 :) 这是 UI 视频

我怎么能意识到这一点?

标签: fluttersharedpreferencesprofile

解决方案


我创建了一个工作表以使用 sharedpreferences 保存用户的 birtdate,但我没有实现!

您能否检查以下代码的某些部分并解释我犯了什么错误。谢谢!

  bool isDateSelected = false;
  DateTime birthDate;
  DateTime _selectedDate;




 @override
 void initState() {
 _read1();
 super.initState();
 }

_read1() async {
prefs = await SharedPreferences.getInstance();
setState(() {
  prefs.getString('selectedDate');
});
}

void _pickDateDialog() {
showDatePicker(
        context: context,
        initialDate: DateTime.now(),
        firstDate: DateTime(1950),
        lastDate: DateTime.now())
    .then((pickedDate) {
  if (pickedDate == null) {
    return;
  }
  setState(() {
    prefs.setString('selectedDate', _selectedDate.toIso8601String());
  });
});
}  
    Padding(
              padding: const EdgeInsets.all(10.0),
            ),
            Text(
              'Select Your Birthdate',
              style: TextStyle(color: Colors.pink, fontSize: 20.0),
            ),
            GestureDetector(
                child: new Icon(
                  Icons.date_range,
                  color: Colors.pink,
                ),
                onTap: () {
                  _pickDateDialog();
                }),
            Padding(
              padding: const EdgeInsets.all(10.0),
            ),
            Text(
              _selectedDate == null
                  ? 'No date chosen!'
                  : '${DateFormat.yMMMd().format(_selectedDate)}',
              style: TextStyle(color: Colors.white),
            ),

推荐阅读