У меня есть ListView, и возможно использовать аппаратную клавиатуру для отфильтровывания объектов. Однако, что я должен сделать для телефонов, которые не имеют аппаратной клавиатуры и только виртуальной? Существует ли способ добавить кнопку, что при нажатии виртуальная клавиатура обнаруживается?
Мне удалось переключить экранную клавиатуру, используя приведенный ниже код. Надеюсь, это кому-нибудь пригодится.
InputMethodManager inputMgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMgr.toggleSoftInput(0, 0);
Существует конвенция (на которую, возможно, кто-то другой может дать ссылку - я не смог быстро ничего найти), что удержание аппаратной кнопки Меню вызывает программную клавиатуру.
Хотя, похоже, это зависит от устройства. Я знаю, что это работает на G1, но на моем HTC Hero это не работает на главном экране (хотя HTC, кажется, испортил несколько ярлыков, например, нажатие кнопки Home).
В любом случае, я знаю, что другие приложения, такие как ConnectBot упоминают и используют это соглашение для вызова виртуальной клавиатуры.
] Одно из предложений может заключаться в использовании простого текстового поля ([] EditText[]). Таким образом, пользователь теоретически может набрать более одного символа, чтобы сузить поиск (и посмотреть, что он набрал). Для отображения экранной клавиатуры достаточно прикоснуться к текстовому окну. Если бы это поле было названо "Поиск" или что-то подобное, я думаю, это было бы более интуитивно понятно для пользователя, чем кнопка.[
].