使用EditText完成后更新数据库中的值?

时间:2016-06-01 16:54:38

标签: android sqlite android-edittext focus textwatcher

所以我想让用户能够更改EditText的值并更新数据库中的相应值。

到目前为止,我已经研究了各种技术,但它们都有问题。

  1. TextWatchers似乎有效,但由于它们在每个数字/字母按下后触发,这似乎是对数据库的大量浪费调用。

  2. 焦点触发器,但我发现的很多帖子都很旧,可能已经过时了,我不知道它们是否适用于所有设备。

  3. 此问题的最新/最新修复是什么?如何普遍检测EditText何时失去焦点并可以安全地触发数据库调用?

2 个答案:

答案 0 :(得分:0)

试试这个

   editext.setOnFocusChangeListener(new View.OnFocusChangeListener() {
       @Override
       public void onFocusChange(View view, boolean focus) {
 if(focus==false)
 {
     //do database operation
 }
       }
   });

答案 1 :(得分:0)

  1. 您可以依赖用户按“完成”:

    App
  2. 您可以使用TextWatcher方法,但结合计时器将每次更新推送到数据库 - 比如说 - 在最后一次更改发生后2秒。 因此,您只需在第一次更改时启动计时器,并在每次更改后重置它。

  3. 我前段时间遇到过这个问题,但不幸的是我无法找出上述问题或使用FocusListener的方法。