【问题标题】:Flutter: How to sync data from sqlite?Flutter:如何从 sqlite 同步数据?
【发布时间】:2020-11-15 09:53:01
【问题描述】:
            TextEditingController textEditingController = TextEditingController();
            bool editState = false;

            StatefulBuilder(
                builder: (context, setState){
                  return AlertDialog(
                      content: SingleChildScrollView(
                        child: Column(
                          children: [
                            Container(
                              child: Padding(
                                padding: const EdgeInsets.only(bottom: 8, left: 8, right: 8),
                                child: Align(
                                    alignment: Alignment.centerLeft,
                                    child: editState ?
                                    TextField(
                                      controller: textEditingController,
                                    ) :
                                    Text(checkpoint["memo"])
                                ),
                              ),
                            ),
                            Container(
                              child: Row(
                                mainAxisAlignment: MainAxisAlignment.spaceAround,
                                children: [
                                  Padding(
                                    padding: const EdgeInsets.only(bottom: 8),
                                    child: GestureDetector(
                                      child: editState ? Text("Save") : Text("Edit"),
                                      onTap: () async {
                                        if(editState == true){
                                          DBHelper dbHelper = DBHelper();
                                          await dbHelper.updateCheckpoint(checkpoint["userkey"], checkpoint["id"], textEditingController.text);
                                        }
                                        else{
                                          setState((){
                                            editState = !editState;
                                          });
                                        }
                                      },
                                    ),
                                  ),
                                ],
                              ),
                            )
                          ],
                        ),
                      )
                  );
                },
              )

这是我的代码。我希望在我输入内容并单击保存按钮时更新Text (checkpoint ["memo"])。 我尝试使用ChangeNotifierProvider,但没有成功。我可能用错了。所以我不知道如何解决这个问题。我该如何解决这个问题?

【问题讨论】:

    标签: sqlite flutter


    【解决方案1】:

    对于文本字段,有一种方法onChanged()。这为您提供了更新的文本。您可以将该文本保存到某个变量中,并使用相同的变量在要显示的位置显示文本。不要忘记在onChanged() 中调用 setState() 来更新文本字段文本。

    setState(() { _memo = newTextValue; });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      • 2012-10-06
      相关资源
      最近更新 更多