博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

A bug about RecipientEditTextView

Posted on 2014-07-15 12:53  haobo  阅读(454)  评论(0编辑  收藏  举报
- Steps to reproduce the problem.
  Pre-condition:the threshold of the RecipientEditTextView is set to 1.
  Step1: type chars and select a item from the dropdown listitem 
  Step2: type "," or ";".

- What happened.
  The first position item of the previous dropdown list which showing in step1 is submitted to the RecipientEditTextView.

- What you think the correct behavior should be.
  The char "," or ";" should be submitted to the RecipiemtnEditTextView.

I think the point is the Threshold of the RecipientEditTextView is set to 1, and the following code snippet is where cause the issue:

 private boolean commitChip(int start, int end, Editable editable) {
        ListAdapter adapter = getAdapter();
        if (adapter != null && adapter.getCount() > 0 && enoughToFilter()
                && end == getSelectionEnd() && !isPhoneQuery()) {
            // choose the first entry.
            submitItemAtPosition(0);
            dismissDropDown();
            return true;
        } else {

the if condition should be modified like this:

private boolean commitChip(int start, int end, Editable editable) {
        ListAdapter adapter = getAdapter();
        if (adapter != null && adapter.getCount() > 0 && enoughToFilter()
                && end == getSelectionEnd() && !isPhoneQuery()
                /*The dropdown listitem should only be submitted when the PopupWindow is showing.To prevent the below case happening:
                  When a dropdown listitem has been submitted, and the getThreshold()==1, and the input char is a single COMMIT char,
                  such as ',' or ';', the first position item of the previous list will be submitted to the EditText */
                && isPopupShowing()) {
            // choose the first entry.
            submitItemAtPosition(0);
            dismissDropDown();
            return true;
        } else {


https://code.google.com/p/android/issues/detail?id=73076