0

我在我的应用程序中应用了 MultiAutoCompleteTextView。大部分功能可能被视为电子邮件应用程序的 RECEIVER 框。我使用带有 hashMap 的自定义适配器将 Name 和 Id 存储为建议来源。当用户单击建议的名称时(仅名称将显示在建议列表中),ID 将以编程方式添加 ID_list(arrayList) 以进行下一次操作。

问题是,用户可能点击错误或改变主意

1) 当用户删除 MultiAutoCompleteTextView 中的某些名称时,如何更新arrayList(ID_list) ?

2)如何通过单击退格键而不是一个字符逐个字符删除一个项目(在多自动完成文本视图中)?

非常感谢你。

4

1 回答 1

0

好吧,我意识到“简化”的重要性。

  1. 使用 TextWatcher 更新 arrayList(ID_list);

    inputReceiver.addTextChangedListener(new TextWatcher() { private int noOfCharAdded = 0; private int noOfCharDeleted = 0;

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            noOfCharAdded = after;
            noOfCharDeleted = count;
        }
    
        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            KEY_MAC = null;
        }
    
        @Override
        public void afterTextChanged(Editable s) {
    
            if (noOfCharAdded >= 1 && noOfCharDeleted > 1) {
                // just input select and backspace
                System.out.println("just input select and backspace "
                        + receiverList.size());
                receiverList.remove(receiverList.size() - 1);
            }
    
        }
    });
    
  2. 使用 onClickListener 将光标设置为字符串结尾;

    inputReceiver.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            inputReceiver.setSelection(inputReceiver.getText().length());
        }
    });
    
于 2015-06-04T06:48:52.653 回答