0

在 Android 应用程序中,

我尝试在 SQL 数据库中注册数据
关键是我在 EditText 文本侦听器中编写和读取 SQL 指令,如下所示:

 mLayoutStruct.getLayout_table_3_Row_3_text3().addTextChangedListener(new TextWatcher()
        {
            public void onTextChanged(CharSequence s, int start, int before, int count)
            {
                 // SQL read and write operation
            }

            public void beforeTextChanged(CharSequence s, int start, int count, int after)
            {
            }

            public void afterTextChanged(Editable s)
            {
            }
        });

用户在 Edittext 中的每次更改都访问数据库是一种真正的做法吗?

4

2 回答 2

0

您可以查看本教程链接。在现实生活中的项目中,您将使用ViewModel、 aDatabase和 a Repository,它们位于viewModel数据库和数据库之间。简而言之,在 EditText 更改时,您可以write通过存储库 update() 数据库和视图模型。并且您readViewModel. 我希望本教程对您有所帮助。

于 2019-12-03T08:14:34.657 回答
0

在现实世界中,您不应该对数据库执行任何查询或发出任何 API 请求。您应该创建一个 debounce 函数来处理这个问题。

假设您想在数据库中查询搜索功能。您希望让您的用户能够在输入时获得结果。如果您查询数据库 onTextChanged 或类似的方法,这将是一项非常昂贵的操作。应在 onTextChanged 中实现 debounce 函数,以延迟使用 debounce 函数进行查询。

我永远不会建议您使用Thread.sleep()或其他类似的功能,例如计时器。这将是一个非常糟糕的用户体验。如果您使用计时器,那么对于每次点击或键入,它都会创建一个计时器任务。你可以在网上搜索一下Timervs。debounce

在android中实现去抖功能,我在网上找到了一个不错的解决方案

于 2019-12-03T08:52:33.280 回答