我正在使用AutoCompleteTextView来提供地址建议。
我想要做的是当用户输入地址(例如“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(),但它不会显示。它仅显示键盘上的用户类型。
答案 0 :(得分: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());
}
});
就是这样,它会像魅力一样工作!!!
这将为您提供问题的提示,根据您的需要和适配器数据进行更改