【问题标题】:flutter : how to save a string to a textEditingController颤振:如何将字符串保存到 textEditingController
【发布时间】:2020-07-01 21:08:23
【问题描述】:

我试图将 textEditing 控制器的值保存在 sharedPrefrences 中,我将它的值保存为字符串,但后来我不知道如何检索字符串的值并将其设置回 textEditingController ,,这是我的代码:

  void saveSubmitScreenPrefs(String phone, String number, String neighborhood,
      String houseNumber, String streetNumber) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    prefs.setString("phone", phone);
    prefs.setString("number", number);
    prefs.setString("neighborhood", neighborhood);
    prefs.setString("houseNumber", houseNumber);
    prefs.setString("streetNumber", streetNumber);

    print("saved the sumbit fields!");
  }

  void loadSubmitScreenPrefs() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    nameController = prefs.get("name").;
    phoneNumberController = prefs.get("phone");
    neighborhoodController = prefs.get("neighborhood");
    streetNumberController = prefs.get("streetNumber");
    houseNumberController = prefs.get("houseNumber");
    notifyListeners();
  }

【问题讨论】:

    标签: dart sharedpreferences texteditingcontroller


    【解决方案1】:

    我用这个修复了它:

      void loadSubmitScreenPrefs() async {
        SharedPreferences prefs = await SharedPreferences.getInstance();
        nameController = TextEditingController(text: prefs.get("name"));
        phoneNumberController = TextEditingController(text: prefs.get("phone"));
        neighborhoodController =
            TextEditingController(text: prefs.get("neighborhood"));
        streetNumberController =
            TextEditingController(text: prefs.get("streetNumber"));
        houseNumberController =
            TextEditingController(text: prefs.get("houseNumber"));
        notifyListeners();
      }
    }
    

    【讨论】:

      【解决方案2】:

      您可以通过使用控制器文本

      来实现这一点
         final TextEditingController textFieldController = TextEditingController();
      
          @override
          void initState() {
            super.initState();
            initialFormValues();
          }
      
          // set value in textfield  
          Future<void> initialFormValues() async {
              myNameController..text =  await Network.getValueFromStorage("name") ?? "";
          }
      

      【讨论】:

        猜你喜欢
        • 2021-07-02
        • 1970-01-01
        • 2020-11-14
        • 2020-02-08
        • 2019-10-19
        • 2020-02-01
        • 2019-07-30
        • 2021-10-26
        • 2022-11-12
        相关资源
        最近更新 更多