完成输入事件而不提交

时间:2017-08-29 13:08:31

标签: android android-edittext

我正在尝试创建一个自动填充用户输入文本的editText。例如,只有在用户输入内容(例如 Lon )后,该应用才能建议使用伦敦,因此请在 Lon 之后插入 don 。我总是提供给我建议的服务,但我不知道只有在用户写完东西后我才会使用什么样的活动来打电话给这项服务(我不想在每封信之后给服务打电话)。 / p>

我尝试了这个,但只有在用户按下提交后才有效,但我想抓住事件"用户不再输入"

 bornCityTxt.setOnEditorActionListener(new EditText.OnEditorActionListener() {

        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            //mycode
            return true;
        }
    });

不太重要的是,如何在一个编辑文本中同时拥有用户文本和提示?

非常感谢。

2 个答案:

答案 0 :(得分:1)

您可以添加一个监听器,然后在afterTextChanged后签入已输入的字母数

Handler h = new Handler();
editText.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) {

        }

        @Override
        public void afterTextChanged(Editable s) {
            if(s.toString().length()>0){
                h.removeCallbacksAndMessages(null); // Cancels previous call
                h.postDelayed(new Runnable() {

                      @Override
                      public void run()
                      {
                         //do something with entered text
                      }
                 }, 1000); // 1 second 
            }
            else{


            }
        }
    });

答案 1 :(得分:0)

尝试使用OnKeyListener:

bornCityTxt.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View view, int i, KeyEvent keyEvent) {
            //your code
            return true;
        }
});

希望这有帮助!