显示虚拟键盘的按钮?

8

我有一个ListView,可以使用硬件键盘过滤项目。但是对于没有硬件键盘只有虚拟键盘的手机怎么办?是否有一种方法添加一个按钮,按下后会显示虚拟键盘?

4个回答

28

我可以使用以下代码切换屏幕键盘。希望对某些人有用。

InputMethodManager inputMgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMgr.toggleSoftInput(0, 0);

3

一个建议是只使用文本输入框 (EditText)。这样,用户理论上可以输入多个字符来缩小搜索范围(并查看他们所键入的内容)。要显示屏幕键盘,他们只需要触摸文本框。如果该框命名为“搜索”或类似的名称,我认为对用户更直观易懂,比一个按钮更好。


2
有一个惯例(也许其他人可以提供参考-我没有很快找到任何东西),按住 Menu 硬件按钮会弹出软键盘。尽管这似乎取决于设备。我知道它在 G1 上运行,但在我的 HTC Hero 上,在主屏幕上它不起作用(尽管 HTC 似乎搞砸了一些快捷方式,如按住Home 按钮)。无论如何,我知道其他应用程序,如ConnectBot,都提到并使用此惯例来弹出虚拟键盘。

2
长按菜单只是为了兼容那些当时不知道软键盘的应用程序而设计的最后一招。今天编写的应用程序不应该依赖它。因为它是一个兼容模式,它会将键盘置于与您预期不同的状态--例如,用户需要显式地关闭它,而不是在浏览 UI 时遵循正常的自动关闭规则。 - hackbod
感谢澄清(来自Android!;)那么,对于原始问题,推荐的UI解决方案是什么?就像bdls提到的那样,一个明确的搜索/过滤文本框吗? - Christopher Orr
添加一个EditText框似乎可以解决问题。我在https://dev59.com/mnI-5IYBdhLWcg3wqqXh(第一个答案)找到了一个不错的教程,我正在跟随它。 - Tyler

0
长按菜单按钮似乎在Android 4.0(冰淇淋三明治)中不再起作用。 这破坏了许多应用程序中可过滤列表的功能,用户现在无法通过过滤器筛选列表,需要耐心地逐一查看漫长的列表。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接