首页 文章

AutoCompleteTextView - 选择后显示建议

提问于
浏览
3

我使用AutoCompleteTextView来提供地址建议 .

我想要做的是当用户输入地址(例如“Ma”)时,建议显示为“Mary,Madley,Ma ......” .

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

例如:他选择了“玛丽”,并得到了诸如“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(),但它不会显示 . 它仅显示键盘上的用户类型 .

1 回答

  • 5

    在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());
    
            }
        });
    

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

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

相关问题