2010-01-06 74 views
3

我想显示一个自定义输入字段(具体来说,一个只包含9-0和两个额外的按钮,包含小数点(或。)和删除按钮)。输入字段与自定义输入法

我可以创建一个自定义IME,但是(据我所知)必须由用户将其设置为系统范围的输入方法。有没有一种方法来实现输入法并将其绑定到特定的输入字段?

感谢您的帮助!

回答

1

我认为你是正确的,你不能拥有一个自定义输入法,你只能用于你的应用程序的特定领域。它将在全球范围内由用户打开。

不管你做什么,都要确保你有一个合适的InputFilter去与任何自定义输入法,你必须限制硬件键盘的输入。

正如你已经设置了android:inputType这个字段,它会自动添加一个合适的InputFilter,它也将tell whatever IME is selected to display appropriate input buttons。对于默认的Android输入法都这样做是显示数字页而不是字母页面第一:

alt text

+0

我通过在.xml文件中设置android:inputType =“numberDecimal”选项完成了相同的操作。问题是,你会看到两行字母和只有一行小数字 - 这可能会严重影响用户体验。所以,我真的很希望用户只能看到数字,分隔符和某种删除按钮,与80年代的所有计算器相同:) – LambergaR

+0

我明白了你的观点。在这种情况下,为什么不在GridLayout中添加一些按钮并禁用默认的屏幕键盘。这看起来更像是一个老派的计算器。 –

+0

这基本上就是我所做的(我正在用按钮播种覆盖)。但是,由于页面上不只有一个输入框,因此当用户将焦点放在字段上时,摆脱该步骤将很好,并且“简单地”显示另一个SiftInput王。 – LambergaR

0

怎么样使用自定义各种在您的应用程序实现了onClick()onTouch()“弹出”监听输入框,以便当用户单击输入字段输入值时,他们将看到一个新的简单活动,并按照@Dave Webb所建议的输入方法重写。理论上不应该是太多的代码或开销。

+0

这就是我最终做的...... – LambergaR

+0

@LambergaR我有同样的问题,我没有实现InputMethodService(基本上是自定义键盘),但现在的问题是,如何在用户点击EditText时显示它... (无论采用哪种方式)您是否设法弄清楚了这一点? – AgentKnopf

+1

@AgentKnopf你可以从webview中检查hitresult(),它将返回edittext类型。 – debonair