Ron*_*ero 7 android autocomplete
你如何得到当前最重要的建议AutoCompleteTextView?我有它建议项目,我有一个文本更改监听器注册.我在同一个屏幕上也有一个列表.在键入时,我想将列表滚动到当前的"最佳"建议.但我无法弄清楚如何访问当前的建议,或至少是最重要的建议.我想我正在寻找类似的东西AutoCompleteTextView.getCurrentSuggestions():
autoCompleteTextView.addTextChangedListener(new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
String currentText = autoCompleteTextView.getText();
String bestGuess = autoCompleteTextView.getCurrentSuggestions()[0];
// ^^^ mewthod doesn't exist
doSomethingWithGuess(bestGuess);
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// do nothing
}
public void afterTextChanged(Editable s) {
// do nothing
}
});
Run Code Online (Sandbox Code Playgroud)
Ped*_*iro 16
我已经使用以下代码完成了您想要做的事情:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.autocomplete_1);
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, COUNTRIES);
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.edit);
textView.setAdapter(adapter);
adapter.registerDataSetObserver(new DataSetObserver() {
@Override
public void onChanged() {
super.onChanged();
Log.d(TAG, "dataset changed");
Object item = adapter.getItem(0);
Log.d(TAG, "item.toString "+ item.toString());
}
});
}
Run Code Online (Sandbox Code Playgroud)
item.toString将打印第一个项目上显示的文本.
请注意,即使您尚未显示弹出窗口(建议),也会发生这种情况.此外,您应该检查是否有任何项目通过过滤条件(也就是用户的输入).
解决第一个问题:
int dropDownAnchor = textView.getDropDownAnchor();
if(dropDownAnchor==0) {
Log.d(TAG, "drop down id = 0"); // popup is not displayed
return;
}
//do stuff
Run Code Online (Sandbox Code Playgroud)
要解决第二个问题,请使用getCount> 0
| 归档时间: |
|
| 查看次数: |
7291 次 |
| 最近记录: |