我在我的应用程序中应用了MultiAutoCompleteTextView。大多数功能可能被视为电子邮件应用程序的RECEIVER框。我使用带有hashMap的自定义适配器来存储Name和Id作为建议的来源。当用户单击建议的名称(只有名称将显示在建议列表中)时,Id将以编程方式添加ID_list(arrayList)以进行下一步操作。
问题是,用户可能会错误地点击或改变主意
1)当用户删除MultiAutoCompleteTextView中的某些名称时,如何更新 arrayList(ID_list)?
2)如何删除一个项目(在multiautocompletetextview中),只有一个Backspace单击而不是一个字符?
非常感谢。
答案 0 :(得分:0)
嗯,我意识到“简化”的重要性。
使用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);
}
}
});
使用onClickListener将光标设置为字符串的结尾;
inputReceiver.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
inputReceiver.setSelection(inputReceiver.getText().length());
}
});