Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android在视图中设置输入类型。不在TextView或任何派生类上_Android - Fatal编程技术网

Android在视图中设置输入类型。不在TextView或任何派生类上

Android在视图中设置输入类型。不在TextView或任何派生类上,android,Android,有没有办法在视图对象上设置输入类型?注意,它不是TextView或EditText、Button等任何派生类 有没有办法在视图对象上设置输入类型 否。在我的例子中,我有一些约束要求我扩展视图,而不是文本视图,但我需要根据接受文本的对象的焦点变化显示不同类型的软键盘(接受文本的对象是自定义跨平台框架的一部分,因此不是EditText对象等)。显然,这是在与框架作斗争,但情况就是这样 在这种情况下,您可能已经需要重写onCreateInputConnection,这为您提供了设置输入类型的机会。这是

有没有办法在视图对象上设置输入类型?注意,它不是TextView或EditText、Button等任何派生类

有没有办法在视图对象上设置输入类型


否。

在我的例子中,我有一些约束要求我扩展
视图,而不是
文本视图
,但我需要根据接受文本的对象的焦点变化显示不同类型的软键盘(接受文本的对象是自定义跨平台框架的一部分,因此不是
EditText
对象等)。显然,这是在与框架作斗争,但情况就是这样

在这种情况下,您可能已经需要重写
onCreateInputConnection
,这为您提供了设置输入类型的机会。这是一种黑客行为,但您可以通过执行以下操作再次调用
onCreateInputConnection

InputMethodManager mgr = (InputMethodManager)context.
                             getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.restartInput(this); // 'this' is the View

我会收到来自我的自定义对象的通知,键盘需要以特定的意图打开,缓存该意图,然后执行上述几行。这将导致调用
onCreateInputConnection
,从而允许您将输入类型设置为缓存值。

那么文本视图是如何做到的?@VilenMelkumyan:它有支持文本输入的Java代码。
View
没有,你问你是否可以“在视图对象上设置输入类型”。欢迎你通读,看看他们是如何在
TextView
及其后代上实现它的。这是一个反问