EditText нужно 2 касания, чтобы получить фокус - PullRequest
0 голосов
/ 13 ноября 2011

Теперь я трачу много времени на это, и я считаю, что решение должно быть простым.

У меня есть подкласс ListView, в котором есть строки, состоящие из EditText и TextView.
То, что Activity является вторым в моей иерархии представлений.
Когда я вхожу в него, ни один из EditText не имеет фокуса, и клавиатура не появляется.(все хорошо).
Теперь я касаюсь EditText, он получает фокус, клавиатура появляется, и в то же время EditText теряет фокус, в этот момент я снова касаюсь EditText, и теперь он получаети держать это в центре внимания.

Есть идеи о том, что может вступить в конфликт друг с другом, что приведет к такому поведению?

Спасибо,

1 Ответ

1 голос
/ 16 ноября 2011

Я исправил эту проблему, но это так странно, что я опубликую решение на случай, если у кого-то будет такая же проблема.

Что странно в первую очередь.Если я ввожу текст в EditText, а затем фиксирую свое редактирование,

public boolean onEditorAction(TextView v, int actionId, KeyEvent event)

является вызовом, и в конце my ListView get updated for FREE
Если я добавлю следующий код в манифест Android:

 <activity android:name=".ConverterActivity" 
        android:windowSoftInputMode="adjustPan"/>

У меня почти правильное поведение, но теперь единственное, чего не хватает, это то, что я больше не получаю обновления.
, поскольку обновления работали до того, как я предположил, что вышеприведенный код не работает.
Но я решил сказать себе, если этот код работает, в чем будет проблема?
Ну, это не обновление, ищите способ обновить ваш ListView и "вуаля".

((BaseAdapter) getListAdapter()).notifyDataSetChanged();

И теперь я задаюсь вопросом, почему я вообще получил бесплатное обновление ... ???

Так что, если у вас есть хорошее объяснение этому, я бы с удовольствием поменял вам зеленый чек.

...