Android在视图中设置输入类型。不在TextView或任何派生类上
有没有办法在视图对象上设置输入类型?注意,它不是TextView或EditText、Button等任何派生类 有没有办法在视图对象上设置输入类型Android在视图中设置输入类型。不在TextView或任何派生类上,android,Android,有没有办法在视图对象上设置输入类型?注意,它不是TextView或EditText、Button等任何派生类 有没有办法在视图对象上设置输入类型 否。在我的例子中,我有一些约束要求我扩展视图,而不是文本视图,但我需要根据接受文本的对象的焦点变化显示不同类型的软键盘(接受文本的对象是自定义跨平台框架的一部分,因此不是EditText对象等)。显然,这是在与框架作斗争,但情况就是这样 在这种情况下,您可能已经需要重写onCreateInputConnection,这为您提供了设置输入类型的机会。这是
否。在我的例子中,我有一些约束要求我扩展
视图,而不是文本视图
,但我需要根据接受文本的对象的焦点变化显示不同类型的软键盘(接受文本的对象是自定义跨平台框架的一部分,因此不是EditText
对象等)。显然,这是在与框架作斗争,但情况就是这样
在这种情况下,您可能已经需要重写onCreateInputConnection
,这为您提供了设置输入类型的机会。这是一种黑客行为,但您可以通过执行以下操作再次调用onCreateInputConnection
:
InputMethodManager mgr = (InputMethodManager)context.
getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.restartInput(this); // 'this' is the View
我会收到来自我的自定义对象的通知,键盘需要以特定的意图打开,缓存该意图,然后执行上述几行。这将导致调用onCreateInputConnection
,从而允许您将输入类型设置为缓存值。那么文本视图是如何做到的?@VilenMelkumyan:它有支持文本输入的Java代码。View
没有,你问你是否可以“在视图对象上设置输入类型”。欢迎你通读,看看他们是如何在TextView
及其后代上实现它的。这是一个反问