其他分享
首页 > 其他分享> > Android:限制用户选择自动完成建议以外的其他内容?

Android:限制用户选择自动完成建议以外的其他内容?

作者:互联网

我提供了一个AutoCompleteTextView来向用户显示建议.根据用户选择的项目,我获取项目的ID并在数据库中使用它.现在我的问题是强制用户仅从AutoCompleteTextView进行选择(即用户不应该输入他自己的文本).这是客户要求.这个怎么做?

解决方法:

这是一个非常简单的解决方案:

您可以通过在AutoCompleteTextView中设置setOnItemClickListener来创建存储所选值的变量.然后,只要用户通过向其添加TextWatcher键入字段,就可以使该值为空.最后,您可以在继续之前验证您的变量是否为null.

String my_var; //keep track!
AutoCompleteTextView tv = (AutoCompleteTextView) layout.findViewById(R.id.tv);
tv.setAdapter(my_adapter);  
tv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        my_var = my_adapter.getItem(position).toString();
    }
});
/**
 * Unset the var whenever the user types. Validation will
 * then fail. This is how we enforce selecting from the list.
 */
tv.addTextChangedListener(new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        my_var = null;
    }
    @Override
    public void afterTextChanged(Editable s) {}
});

标签:autocompletetextview,android
来源: https://codeday.me/bug/20191005/1855179.html