代码之家  ›  专栏  ›  技术社区  ›  Joshua Best

用户确认输入后,如何运行方法?

  •  -2
  • Joshua Best  · 技术社区  · 6 年前

    我正在制作一个程序,用户必须搜索我的一些数据。

    我已经为用户创建了一个编辑视图,以便将其文本放入其中,但我希望在用户确认输入后运行一个方法。

    我该怎么做?

    谢谢您。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Anjani Mittal    6 年前

    如果您试图添加搜索功能,为什么不使用搜索视图。

        2
  •  0
  •   Arpit bandil    6 年前

    有很多选择,我在下面写3个选择。

    1 - If you have confirm button then use its onclicklistener for you method call.

    2 - If you don't have confirm button then add focusChangeListener in edittext and call you method when edittext focus is lost.

    3 - You can use a timerTask like when user stopped typing for 2 second (we assume that user input is done) you can call your method

    例子:

        edt_search.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                }
    
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                // user is typing: reset already started timer (if existing)
                if (timer != null) {
                    timer.cancel();
                }
            }
            @Override
            public void afterTextChanged(final Editable s) {
                timer = new Timer();
                timer.schedule(new TimerTask() {
                    @Override
                    public void run() {
    
                        // Search Logic
                           if (!s.toString().trim().isEmpty())
                           // Your Function call
                    }
                }, 500); // 350ms delay before the timer executes the "run“ method from TimerTask
            }
    }