AutoCompleteTextView - 选择后显示建议

AutoCompleteTextView - Show suggestions after selection

我正在使用 AutoCompleteTextView 获取地址建议。

我想做的是当用户输入地址(f.e。"Ma")时,建议显示为"Mary, Madley, Ma..."。

然后,当用户选择其中一个建议时,他会立即获得包含完整地址的另一个建议。

例如:他选择了 "Mary",他得到了 "Mary 123, Boston"、"Mary 1566, New York"、"Mary Jane 569, New York" 等建议。

问题是适配器中填写了建议,但没有显示。选择后下拉列表不显示。

到目前为止,我的文本观察器已分配给负责建议的 AutoCompleteTextView:

TextWatcher textWatcher = new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    @Override
    public void afterTextChanged(Editable s) {

        if(etStreet.isPerformingCompletion())
            return;

        List<String> arrayValues = getValues();

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),
                android.R.layout.simple_dropdown_item_1line, arrayValues);
        etUlica.setAdapter(adapter);

    }
};

我试过在项目点击、文本更改和所有其他事件上调用 showDropDown(),但它就是不显示。它仅在用户在键盘上键入时显示。

在 AutoCompleteTextView.setOnItemClickListener()

中写入以下代码
autoComplete.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            autoComplete.postDelayed(new Runnable() {
                @Override
                public void run() {
                    autoComplete.showDropDown();
                }
            },100);
            autoComplete.setText(autoComplete.getText().toString());
            autoComplete.setSelection(autoComplete.getText().length());

        }
    });

就是这样,它会像魅力一样工作!!!

这将为您的问题提供提示,根据您的需要和适配器数据进行更改