键盘上的回车按钮点击事件的个数问题

来源:互联网 发布:js防水涂料是柔性的吗 编辑:程序博客网 时间:2024/05/01 02:50

代码如下

private int num = 0;  // 输入法回车键点击判断    ...省略代码.../**  * 使键盘上的回车按钮实现搜索功能  */mEdtSearch.setOnEditorActionListener(new TextView.OnEditorActionListener() {            @Override            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {                num++;                if (actionId == EditorInfo.IME_ACTION_SEARCH                        || (event != null && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {                    if (num == 2) {                        String search = mEdtSearch.getText().toString().trim();                        if ("".equals(search)) {                            mBtnSearch.setClickable(false);                            Toast.makeText(SearchActivity.this, "请输入关键字", Toast.LENGTH_SHORT).show();                            num = 0;                        } else {                            mBtnSearch.setClickable(true);                            Intent intent = new Intent(SearchActivity.this, SearchResultActivity.class);                            intent.putExtra(Constants.INTENT_EXTRA_ID, search);                            intent.putExtra("selectedId", selectedId);                            intent.putExtra("navType", navType);                            startActivityForResult(intent, 0);                            InputDataToDb(search);                            num = 0;                        }                    }                    return true;                }                return false;            }        });    

我在看的时候,很有问题?为何判断的是if (num == 2),然后debug后发现,如果按输入法的回车键,会调用两次监听,第二次满足条件执行。

0 0
原创粉丝点击