Обнаружение, если AutoCompleteTextView ключ на текстовое поле или выделение

Хорошо, вот моя ситуация. У меня есть AutoCompleteTextView, который должен иметь прослушиватель для OnKey, что нормально, но я хочу использовать onKey только в том случае, если представление с "ключами" является фактическим текстовым полем, а не одним из вариантов автозаполнения. В случае, если выбор ударил, я собираюсь обработать его в onItemClickedListener. Итак, мой код выглядит примерно так:

открытый класс MyFragment расширяет Fragment реализует OnKeyListener {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    Log.i(LOG_TAG, "Fragment Inflated");
    View view = inflater.inflate(R.layout.my_layout, container, false);
    final  AutoCompleteTextView autoComplete = (AutoCompleteTextView)v.findViewById(R.id.my_autocomplete_id);
    autoComplete.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
           //just setting the text from the selection
            String s =  adapterView.getItemAtPosition(i).toString();
            autoComplete.setText(s);

        }
    });
    return view;
}


@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
    if(v instanceof AutoCompleteTextView)
    {
        AutoCompleteTextView av = (AutoCompleteTextView)v;
        //I need to be able to tell if this is the text field or a selection
        // from the autocomplete!!
    }

}

OnKey срабатывает до щелчка по элементу, что ожидается (не думаю, что я могу это изменить), поэтому, что мне действительно нужно сделать, как я уже говорил выше, надежно определить, была ли область редактирования текста "ключом" или была выбор.

Я прогуглил и проверил объект AutoCompleteTextView в моем отладчике, и я не вижу ничего, что указывает на то, что мне нужно.

У кого-нибудь есть предложения, как мне справиться с этим? Как я уже сказал, я должен иметь возможность обрабатывать onKey для текстовой области, по которой щелкают. Если бы я мог как-то обработать нажатие selectedItem до OnKey, я бы мог установить флаг, но опять же я не думаю, что это возможно. Любой совет будет очень признателен. Большое спасибо!

1 ответ

Поэтому я не люблю отвечать на свой собственный вопрос, но я нашел ответ, не знаю, как я его пропустил, во-первых: AutoCompleTextView.getListSelection() вернет -1, если вы находитесь в текстовом поле.

Другие вопросы по тегам