Android 如何更新用于在MultiAutoCompleteTextView中存储密钥的ArrayList

Android 如何更新用于在MultiAutoCompleteTextView中存储密钥的ArrayList,android,textwatcher,multiautocompletetextview,Android,Textwatcher,Multiautocompletetextview,我在应用程序中应用了MultiAutoCompleteTextView。大部分功能可能被视为电子邮件应用程序的接收框。我使用带有hashMap的自定义适配器将名称和Id存储为建议源。当用户单击“建议的名称”时,建议列表中将仅显示名称,该Id将以编程方式添加到Id\u listarrayList中,以用于下一个操作 问题是,用户可能点击错误或改变主意 1当用户删除MultiAutoCompleteTextView中的一些名称时,如何更新ArrayListU列表 2如何在multiautocompl

我在应用程序中应用了MultiAutoCompleteTextView。大部分功能可能被视为电子邮件应用程序的接收框。我使用带有hashMap的自定义适配器将名称和Id存储为建议源。当用户单击“建议的名称”时,建议列表中将仅显示名称,该Id将以编程方式添加到Id\u listarrayList中,以用于下一个操作

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

1当用户删除MultiAutoCompleteTextView中的一些名称时,如何更新ArrayListU列表

2如何在multiautocompletetextview中通过一次退格单击而不是一个字符一个字符地删除项目


非常感谢。

嗯,我意识到简化的重要性

使用TextWatcher更新ArrayListU列表

inputReceiver.addTextChangedListenernew TextWatcher{ private int noOfCharAdded=0; 私有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);
        }

    }
});
使用onClickListener将光标设置为字符串的结尾

inputReceiver.SetOnClickListener新建OnClickListener{

    @Override
    public void onClick(View v) {
        inputReceiver.setSelection(inputReceiver.getText().length());
    }
});
研究暗示。