如何更新用于在 MultiAutoCompleteTextView 中存储 KEY 的 ArrayList
How to update ArrayList used to store KEY in MultiAutoCompleteTextView
我在我的应用程序中应用了 MultiAutoCompleteTextView。大多数功能可能被视为电子邮件应用程序的接收框。我使用带有 hashMap 的自定义适配器来存储 Name 和 Id 作为建议的来源。当用户单击建议的名称时(只有名称会显示在建议列表中),Id 将以编程方式添加 ID_list(arrayList) 以进行下一次操作。
问题是,用户可能会点击错误或改变主意
1) 当用户删除 MultiAutoCompleteTextView 中的某些名称时,我如何更新 arrayList(ID_list) ??
2) 如何通过一次退格键删除一个项目(在 multiaautocompletetextview 中)而不是通过一个字符删除一个字符??
非常感谢。
嗯,我意识到"simplization"的重要性了。
使用 TextWatcher 更新 arrayList(ID_list);
inputReceiver.addTextChangedListener(新的 TextWatcher() {
私人诠释 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());
}
});
我在我的应用程序中应用了 MultiAutoCompleteTextView。大多数功能可能被视为电子邮件应用程序的接收框。我使用带有 hashMap 的自定义适配器来存储 Name 和 Id 作为建议的来源。当用户单击建议的名称时(只有名称会显示在建议列表中),Id 将以编程方式添加 ID_list(arrayList) 以进行下一次操作。
问题是,用户可能会点击错误或改变主意
1) 当用户删除 MultiAutoCompleteTextView 中的某些名称时,我如何更新 arrayList(ID_list) ??
2) 如何通过一次退格键删除一个项目(在 multiaautocompletetextview 中)而不是通过一个字符删除一个字符??
非常感谢。
嗯,我意识到"simplization"的重要性了。
使用 TextWatcher 更新 arrayList(ID_list);
inputReceiver.addTextChangedListener(新的 TextWatcher() { 私人诠释 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()); } });