Я сделал то, что вы хотите сделать с помощью следующего кода:
@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());
}
});
}
item.toString напечатает текст, отображаемый на первом элементе.
Обратите внимание, что это произойдет, даже если вы еще не показывает всплывающее окно (предложения). Кроме того, вы должны проверить, есть ли какие-либо элементы, которые соответствуют критериям фильтра (или пользовательский ввод).
Для решения первой проблемы:
int dropDownAnchor = textView.getDropDownAnchor();
if(dropDownAnchor==0) {
Log.d(TAG, "drop down id = 0"); // popup is not displayed
return;
}
//do stuff
Чтобы решить вторую проблему, используйте getCount> 0