- 浏览: 1203560 次
- 性别:
- 来自: 荆州
文章分类
- 全部博客 (396)
- Android 基础 (72)
- Java 基础 (42)
- Android(动画效果) (26)
- Android(自定义组件) (13)
- Android(手机服务) (38)
- Android(网络相关) (27)
- Android(多媒体) (12)
- Android(小技巧) (30)
- Android(用户界面) (39)
- 基础概念 (24)
- Android组件学习 (21)
- Android数据库相关 (11)
- 生活杂谈 (10)
- 调试技巧部分 (8)
- Sql Server相关 (1)
- Android(xml相关) (2)
- Android 开发 (12)
- 韩语学习 (4)
- Mac添加环境变量的三种方法 (1)
- iPhone开发 (1)
- Android Studio (1)
最新评论
-
ppfbsar:
下载网络文件到SD卡上 -
851228082:
好文!彻底理解单类型导入与按需导入的区别了。还有一点可以通过 ...
谈java的导入(import) -
麦田的设计者:
老乡啊
sqlite 数据库保存图片 -
sf_dream:
我要是读写list、map之类的集合呢
ObjectOutputStream和ObjectInputStream类的学习 -
xfyunyun:
博主,请问webview加载html字符串时怎么进行缓存处理呢 ...
WebView使用总结2(加载HTML内容形式的String)
整个输入法框架(IMF)结构的核心API,应用程序之间进行调度和当前输入法交互。你可以用Context.getSystemService()取得这一接口的实例。
架构总述(Architecture Overview)
输入法框架(IMF)共有三个主要部分:
* 输入法管理器,管理各部分的交互。它是一个客户端API,存在于各个应用程序的context中,用来沟通管理所有进程间交互的全局系统服务。
* 输入法(IME) ,实现一个允许用户生成文本的独立交互模块。系统绑定一个当前的输入法。使其创建和生成,决定输入法何时隐藏或者显示它的UI。同一时间只能有一个IME运行。
* 客户应用程序,通过输入法管理器控制输入焦点和IME的状态。一次只能有一个客户端使用IME。
应用程序(Applications)
大多数情况下,使用标准TextView或其子类的应用程序只要做少量工作就可以让软键盘(soft input methods)正常工作。你要注意的是:
* 正确设置你的可编辑文本视图inputType,这样输入法有足够的上下文帮助用户向其输入文本。
* 当输入法显示时妥善处理隐藏屏幕空间。理想的情况下应用程序应处理窗口变小,如必要你可以利用系统执行平移窗口。你应在活动(activity)中设置windowSoftInputMode属性或调整创建窗口的相应值,以便系统决定平移或缩放(它会尝试自动调整但可能出错)。
* 你还可以通过相同的windowSoftInputMode控制窗口的首选软键盘状态(打开、关闭等)。
通过API可以与IMF及其IME交互实现更细致的控制,如显示或输入区域,用户选取某输入法等。
当你编写自己的文本编辑器的时候,你要实现onCreateInputConnection(EditorInfo)以返回你的InputConnection的接口实例,用来允许IME和你的文本编辑域来交互。
输入法(Input Methods)
一个输入法(IME)是Service(服务)的实现,通常继承自 InputMethodService。IME提供核心的 InputMethod接口,尽管提供InputMethod通常是由InputMethodService来处理,而IME的实现只需要处理更高层的API。
更多信息参阅InputMethodService。
安全(Security)
输入法关系到许多安全问题,因其基本不受约束地驱动UI并监视用户输入。Android输入法框架还允许调度第三方IME,所必须小心以限制他们的选择和相互作用。
以下是IMF背后安全架构的要点:
* 只允许系统访问经BIND_INPUT_METHOD权限许可访问IME的InputMethod接口。通过绑定到要求这个权限的服务来强制实现这一点。所以系统可以保证没有不被信任的客户端在它的控制之外访问到当前的输入法。
* IMF中可能有许多客户进程,但在同一时间只有一个是激活的。未激活客户端不能与IMF核心交互通过下述机制实现。
* 输入法客户端只可访问InputMethodSession接口。每个客户端创建一个接口实例,只有与激活客户相关联的会话的调用才会被IME处理。这点通过普通IME的 AbstractInputMethodService执行,必须由IME显式的处理,而IME正是InputMethodSession的自定义实现。
* 只有激活的InputConnection接受操作。IMF通知每个客户进程是否激活,IMF忽略非激活进程对当前输入联接的调用。这确保了当前IME只将事件和文本编辑交付用户可见焦点的UI。
* 一个IME永远不能在屏幕关闭时与 InputConnection交互。这是通过当屏幕关闭时所有客户端无效,并防止不良IME在用户无法关注其行为时驱动UI。
* 客户应用程序可以要求系统选取一个新的IME,但不能编程式选择之一。这是避免恶意程序在用户导航到其它应用程序时,选择自己的IME并保持运行。也就是说,IME可以编程式的要求系统选择其它IME,因它完全控制了用户输入。
用户在可切换至一个新的IME前必须显式的启用它,以确认系统了解它,使其处于可用状态。
三、常量
public static final int HIDE_IMPLICIT_ONLY
hideSoftInputFromWindow(IBinder, int)中的标志,表示如果用户未显式地显示软键盘窗口,则隐藏窗口。
常量值: 1 (0x00000001)
public static final int HIDE_NOT_ALWAYS
hideSoftInputFromWindow(IBinder, int)中的标志,表示软键盘窗口总是隐藏,除非开始时以SHOW_FORCED显示。
常量值: 2 (0x00000002)
public static final int RESULT_HIDDEN
showSoftInput(View, int, ResultReceiver)和hideSoftInputFromWindow(IBinder, int, ResultReceiver)中ResultReceiver结果代码标志:软键盘窗口从显示切换到隐藏时的状态。
常量值: 3 (0x00000003)
public static final int RESULT_SHOWN
showSoftInput(View, int, ResultReceiver)和hideSoftInputFromWindow(IBinder, int, ResultReceiver)中ResultReceiver结果代码标志:软键盘窗口从隐藏切换到显示时的状态。
常量值: 2 (0x00000002)
public static final int RESULT_UNCHANGED_HIDDEN
showSoftInput(View, int, ResultReceiver)和hideSoftInputFromWindow(IBinder, int, ResultReceiver)中ResultReceiver结果代码标志:软键盘窗口不变保持隐藏时的状态。
常量值: 1 (0x00000001)
public static final int RESULT_UNCHANGED_SHOWN
showSoftInput(View, int, ResultReceiver)和hideSoftInputFromWindow(IBinder, int, ResultReceiver)中ResultReceiver结果代码标志:软键盘窗口不变保持显示时的状态。
常量值: 0 (0x00000000)
public static final int SHOW_FORCED
showSoftInput(View, int)标志,表示用户强制打开输入法(如长按菜单键),一直保持打开直至只有显式关闭。
常量值: 2 (0x00000002)
public static final int SHOW_IMPLICIT
showSoftInput(View, int)标志,表示隐式显示输入窗口,非用户直接要求。窗口可能不显示。
常量值: 1 (0x00000001)
四、公共方法
public void displayCompletions (View view, CompletionInfo[] completions)
(译者注:输入法自动完成)
public InputMethodSubtype getCurrentInputMethodSubtype ()
(译者注:获取当前输入法类型?)
public List<InputMethodInfo> getEnabledInputMethodList ()
(译者注:获取已启用输入法列表?)
public List<InputMethodSubtype> getEnabledInputMethodSubtypeList (InputMethodInfo imi, boolean allowsImplicitlySelectedSubtypes)
public List<InputMethodInfo> getInputMethodList ()
(译者注:获取输入法列表)
public Map<InputMethodInfo, List<InputMethodSubtype>> getShortcutInputMethodsAndSubtypes ()
public void hideSoftInputFromInputMethod (IBinder token, int flags)
关闭/隐藏输入法软键盘区域,用户不再看到或与其交互。只能由当前激活输入法调用,因需令牌(token)验证。
参数
token 在输入法启动时提供令牌验证,验证后可对其进行操作。
flags 提供额外的操作标志。当前可以为0或 HIDE_IMPLICIT_ONLY, HIDE_NOT_ALWAYS等位设置。
public boolean hideSoftInputFromWindow (IBinder windowToken, int flags)
hideSoftInputFromWindow(IBinder, int, ResultReceiver)的无返回值版:从窗口上下文中确定当前接收输入的窗口,隐藏其输入法窗口
参数
windowToken 由窗口请求View.getWindowToken()返回得到的令牌(token)。
flags 提供额外的操作标志。当前可以为0或 HIDE_IMPLICIT_ONLY位设置。
public boolean hideSoftInputFromWindow (IBinder windowToken, int flags, ResultReceiver resultReceiver)
从窗口上下文中确定当前接收输入的窗口,要求隐藏其软键盘窗口。它可由用户调用并得到结果而不仅仅是显式要求输入法窗口隐藏。
参数
windowToken 由窗口请求View.getWindowToken()返回得到的令牌(token)。
flags 提供额外的操作标志。当前可以为0或 HIDE_IMPLICIT_ONLY位设置。
resultReceiver 如不为空,当IME处理请求告诉你完成时调用。你收到的结果码可以是RESULT_UNCHANGED_SHOWN, RESULT_UNCHANGED_HIDDEN, RESULT_SHOWN, 或RESULT_HIDDEN。
public void hideStatusIcon (IBinder imeToken)
(译者注:隐藏状态栏图标?)
public boolean isAcceptingText ()
当前服务视图接受全文编辑返回真。没有输入法联接为false,这时其只能处理原始按键事件。
public boolean isActive (View view)
视图为当前输入的激活视图时返回真。
public boolean isActive ()
输入法中的任意视图激活时返回真。
public boolean isFullscreenMode ()
判断相关输入法是否以全屏模式运行。全屏时,完全覆盖你的UI时,返回真,否则返回假。
public boolean isWatchingCursor (View view)
如当前输入法要看到输入编辑者的光标位置时返回真。
public void restartInput (View view)
如有输入法联接至视图,重启输入以显示新的内容。可在以下情况时调用此方法:视图的文字导致输入法外观变化或有按键输入流,如应用程序调用TextView.setText()时。
参数
view 文字发生变化的视图。
public void sendAppPrivateCommand (View view, String action, Bundle data)
对当前输入法调用 InputMethodSession.appPrivateCommand()。
参数
view 可选的发送命令的视图,如你要发送命令而不考虑视图附加到输入法,此项可以为空。
action 执行的命令名称。必须是作用域的名称,如前缀包名称,这样不同的开发者就不会创建冲突的命令。
data 命令中包含的任何数据。
public boolean setCurrentInputMethodSubtype (InputMethodSubtype subtype)
(译者注:此方法为3.0中新增的方法)
public void setInputMethod (IBinder token, String id)
强制切换到新输入法部件。只能由持有token的应用程序(application)或服务(service) 调用当前激活输入法。
参数
token 在输入法启动时提供令牌验证,验证后可对其进行操作。
id 切换到新输入法的唯一标识。
public void setInputMethodAndSubtype (IBinder token, String id, InputMethodSubtype subtype)
强制切换到一个新的输入法和指定的类型。只能由持有token的应用程序(application)或服务(service) 调用当前激活输入法。(译者注:此方法为3.0中新增的方法)
参数
token 在输入法启动时提供令牌验证,验证后可对其进行操作。
id 切换到新输入法的唯一标识。
subtype 切换到新输入法的新类型。
public void showInputMethodAndSubtypeEnabler (String topId)
(译者注:此方法为3.0中新增的方法)
public void showInputMethodPicker ()
(译者注:显示输入法菜单列表)
public boolean showSoftInput (View view, int flags, ResultReceiver resultReceiver)
如需要,显式要求当前输入法的软键盘区域向用户显示。当用户与视图交互,用户表示要开始执行输入操作时,可以调用此方法。
参数
view 当前焦点视图,可接受软键盘输入。
flags 提供额外的操作标志。当前可以是0或SHOW_IMPLICIT 位设置。
resultReceiver 如不为空,当IME处理请求告诉你完成时调用。你收到的结果码可以是RESULT_UNCHANGED_SHOWN, RESULT_UNCHANGED_HIDDEN, RESULT_SHOWN, 或 RESULT_HIDDEN 。
public boolean showSoftInput (View view, int flags)
showSoftInput(View, int, ResultReceiver)的无返回值版:如需要,显式要求当前输入法的软键盘区域向用户显示。
参数
view 当前焦点视图,可接受软键盘输入。
flags 提供额外的操作标志。当前可以是0或SHOW_IMPLICIT 位设置。
public void showSoftInputFromInputMethod (IBinder token, int flags)
显示输入法的软键盘区域,这样用户可以到看到输入法窗口并能与其交互。只能由当前激活输入法调用,因需令牌(token)验证。
参数
token 在输入法启动时提供令牌验证,验证后可对其进行操作。
flags 提供额外的操作标志。可以是0或 SHOW_IMPLICIT, SHOW_FORCED位设置。
public void showStatusIcon (IBinder imeToken, String packageName, int iconId)
(译者注:显示状态栏图标?)
public boolean switchToLastInputMethod (IBinder imeToken)
public void toggleSoftInput (int showFlags, int hideFlags)
(译者注:切换软键盘)
public void toggleSoftInputFromWindow (IBinder windowToken, int showFlags, int hideFlags)
本方法切换输入法的窗口显示。如输入窗口已显示,它隐藏。如无输入窗口则显示。
参数
windowToken 由窗口请求View.getWindowToken()返回得到的令牌(token)。
showFlags 提供额外的操作标志。当前可以为0或 HIDE_IMPLICIT_ONLY位设置。
hideFlags 提供额外的操作标志。可以是0或 HIDE_IMPLICIT_ONLY, HIDE_NOT_ALWAYS位设置。
public void updateCursor (View view, int left, int top, int right, int bottom)
返回窗口的当前光标位置。
public void updateExtractedText (View view, int token, ExtractedText text)
(译者注:当内容变化时文本编辑器调用此方法,通知其新提取文本。)
public void updateSelection (View view, int selStart, int selEnd, int candidatesStart, int candidatesEnd)
返回当前选择区域。
架构总述(Architecture Overview)
输入法框架(IMF)共有三个主要部分:
* 输入法管理器,管理各部分的交互。它是一个客户端API,存在于各个应用程序的context中,用来沟通管理所有进程间交互的全局系统服务。
* 输入法(IME) ,实现一个允许用户生成文本的独立交互模块。系统绑定一个当前的输入法。使其创建和生成,决定输入法何时隐藏或者显示它的UI。同一时间只能有一个IME运行。
* 客户应用程序,通过输入法管理器控制输入焦点和IME的状态。一次只能有一个客户端使用IME。
应用程序(Applications)
大多数情况下,使用标准TextView或其子类的应用程序只要做少量工作就可以让软键盘(soft input methods)正常工作。你要注意的是:
* 正确设置你的可编辑文本视图inputType,这样输入法有足够的上下文帮助用户向其输入文本。
* 当输入法显示时妥善处理隐藏屏幕空间。理想的情况下应用程序应处理窗口变小,如必要你可以利用系统执行平移窗口。你应在活动(activity)中设置windowSoftInputMode属性或调整创建窗口的相应值,以便系统决定平移或缩放(它会尝试自动调整但可能出错)。
* 你还可以通过相同的windowSoftInputMode控制窗口的首选软键盘状态(打开、关闭等)。
通过API可以与IMF及其IME交互实现更细致的控制,如显示或输入区域,用户选取某输入法等。
当你编写自己的文本编辑器的时候,你要实现onCreateInputConnection(EditorInfo)以返回你的InputConnection的接口实例,用来允许IME和你的文本编辑域来交互。
输入法(Input Methods)
一个输入法(IME)是Service(服务)的实现,通常继承自 InputMethodService。IME提供核心的 InputMethod接口,尽管提供InputMethod通常是由InputMethodService来处理,而IME的实现只需要处理更高层的API。
更多信息参阅InputMethodService。
安全(Security)
输入法关系到许多安全问题,因其基本不受约束地驱动UI并监视用户输入。Android输入法框架还允许调度第三方IME,所必须小心以限制他们的选择和相互作用。
以下是IMF背后安全架构的要点:
* 只允许系统访问经BIND_INPUT_METHOD权限许可访问IME的InputMethod接口。通过绑定到要求这个权限的服务来强制实现这一点。所以系统可以保证没有不被信任的客户端在它的控制之外访问到当前的输入法。
* IMF中可能有许多客户进程,但在同一时间只有一个是激活的。未激活客户端不能与IMF核心交互通过下述机制实现。
* 输入法客户端只可访问InputMethodSession接口。每个客户端创建一个接口实例,只有与激活客户相关联的会话的调用才会被IME处理。这点通过普通IME的 AbstractInputMethodService执行,必须由IME显式的处理,而IME正是InputMethodSession的自定义实现。
* 只有激活的InputConnection接受操作。IMF通知每个客户进程是否激活,IMF忽略非激活进程对当前输入联接的调用。这确保了当前IME只将事件和文本编辑交付用户可见焦点的UI。
* 一个IME永远不能在屏幕关闭时与 InputConnection交互。这是通过当屏幕关闭时所有客户端无效,并防止不良IME在用户无法关注其行为时驱动UI。
* 客户应用程序可以要求系统选取一个新的IME,但不能编程式选择之一。这是避免恶意程序在用户导航到其它应用程序时,选择自己的IME并保持运行。也就是说,IME可以编程式的要求系统选择其它IME,因它完全控制了用户输入。
用户在可切换至一个新的IME前必须显式的启用它,以确认系统了解它,使其处于可用状态。
三、常量
public static final int HIDE_IMPLICIT_ONLY
hideSoftInputFromWindow(IBinder, int)中的标志,表示如果用户未显式地显示软键盘窗口,则隐藏窗口。
常量值: 1 (0x00000001)
public static final int HIDE_NOT_ALWAYS
hideSoftInputFromWindow(IBinder, int)中的标志,表示软键盘窗口总是隐藏,除非开始时以SHOW_FORCED显示。
常量值: 2 (0x00000002)
public static final int RESULT_HIDDEN
showSoftInput(View, int, ResultReceiver)和hideSoftInputFromWindow(IBinder, int, ResultReceiver)中ResultReceiver结果代码标志:软键盘窗口从显示切换到隐藏时的状态。
常量值: 3 (0x00000003)
public static final int RESULT_SHOWN
showSoftInput(View, int, ResultReceiver)和hideSoftInputFromWindow(IBinder, int, ResultReceiver)中ResultReceiver结果代码标志:软键盘窗口从隐藏切换到显示时的状态。
常量值: 2 (0x00000002)
public static final int RESULT_UNCHANGED_HIDDEN
showSoftInput(View, int, ResultReceiver)和hideSoftInputFromWindow(IBinder, int, ResultReceiver)中ResultReceiver结果代码标志:软键盘窗口不变保持隐藏时的状态。
常量值: 1 (0x00000001)
public static final int RESULT_UNCHANGED_SHOWN
showSoftInput(View, int, ResultReceiver)和hideSoftInputFromWindow(IBinder, int, ResultReceiver)中ResultReceiver结果代码标志:软键盘窗口不变保持显示时的状态。
常量值: 0 (0x00000000)
public static final int SHOW_FORCED
showSoftInput(View, int)标志,表示用户强制打开输入法(如长按菜单键),一直保持打开直至只有显式关闭。
常量值: 2 (0x00000002)
public static final int SHOW_IMPLICIT
showSoftInput(View, int)标志,表示隐式显示输入窗口,非用户直接要求。窗口可能不显示。
常量值: 1 (0x00000001)
四、公共方法
public void displayCompletions (View view, CompletionInfo[] completions)
(译者注:输入法自动完成)
public InputMethodSubtype getCurrentInputMethodSubtype ()
(译者注:获取当前输入法类型?)
public List<InputMethodInfo> getEnabledInputMethodList ()
(译者注:获取已启用输入法列表?)
public List<InputMethodSubtype> getEnabledInputMethodSubtypeList (InputMethodInfo imi, boolean allowsImplicitlySelectedSubtypes)
public List<InputMethodInfo> getInputMethodList ()
(译者注:获取输入法列表)
public Map<InputMethodInfo, List<InputMethodSubtype>> getShortcutInputMethodsAndSubtypes ()
public void hideSoftInputFromInputMethod (IBinder token, int flags)
关闭/隐藏输入法软键盘区域,用户不再看到或与其交互。只能由当前激活输入法调用,因需令牌(token)验证。
参数
token 在输入法启动时提供令牌验证,验证后可对其进行操作。
flags 提供额外的操作标志。当前可以为0或 HIDE_IMPLICIT_ONLY, HIDE_NOT_ALWAYS等位设置。
public boolean hideSoftInputFromWindow (IBinder windowToken, int flags)
hideSoftInputFromWindow(IBinder, int, ResultReceiver)的无返回值版:从窗口上下文中确定当前接收输入的窗口,隐藏其输入法窗口
参数
windowToken 由窗口请求View.getWindowToken()返回得到的令牌(token)。
flags 提供额外的操作标志。当前可以为0或 HIDE_IMPLICIT_ONLY位设置。
public boolean hideSoftInputFromWindow (IBinder windowToken, int flags, ResultReceiver resultReceiver)
从窗口上下文中确定当前接收输入的窗口,要求隐藏其软键盘窗口。它可由用户调用并得到结果而不仅仅是显式要求输入法窗口隐藏。
参数
windowToken 由窗口请求View.getWindowToken()返回得到的令牌(token)。
flags 提供额外的操作标志。当前可以为0或 HIDE_IMPLICIT_ONLY位设置。
resultReceiver 如不为空,当IME处理请求告诉你完成时调用。你收到的结果码可以是RESULT_UNCHANGED_SHOWN, RESULT_UNCHANGED_HIDDEN, RESULT_SHOWN, 或RESULT_HIDDEN。
public void hideStatusIcon (IBinder imeToken)
(译者注:隐藏状态栏图标?)
public boolean isAcceptingText ()
当前服务视图接受全文编辑返回真。没有输入法联接为false,这时其只能处理原始按键事件。
public boolean isActive (View view)
视图为当前输入的激活视图时返回真。
public boolean isActive ()
输入法中的任意视图激活时返回真。
public boolean isFullscreenMode ()
判断相关输入法是否以全屏模式运行。全屏时,完全覆盖你的UI时,返回真,否则返回假。
public boolean isWatchingCursor (View view)
如当前输入法要看到输入编辑者的光标位置时返回真。
public void restartInput (View view)
如有输入法联接至视图,重启输入以显示新的内容。可在以下情况时调用此方法:视图的文字导致输入法外观变化或有按键输入流,如应用程序调用TextView.setText()时。
参数
view 文字发生变化的视图。
public void sendAppPrivateCommand (View view, String action, Bundle data)
对当前输入法调用 InputMethodSession.appPrivateCommand()。
参数
view 可选的发送命令的视图,如你要发送命令而不考虑视图附加到输入法,此项可以为空。
action 执行的命令名称。必须是作用域的名称,如前缀包名称,这样不同的开发者就不会创建冲突的命令。
data 命令中包含的任何数据。
public boolean setCurrentInputMethodSubtype (InputMethodSubtype subtype)
(译者注:此方法为3.0中新增的方法)
public void setInputMethod (IBinder token, String id)
强制切换到新输入法部件。只能由持有token的应用程序(application)或服务(service) 调用当前激活输入法。
参数
token 在输入法启动时提供令牌验证,验证后可对其进行操作。
id 切换到新输入法的唯一标识。
public void setInputMethodAndSubtype (IBinder token, String id, InputMethodSubtype subtype)
强制切换到一个新的输入法和指定的类型。只能由持有token的应用程序(application)或服务(service) 调用当前激活输入法。(译者注:此方法为3.0中新增的方法)
参数
token 在输入法启动时提供令牌验证,验证后可对其进行操作。
id 切换到新输入法的唯一标识。
subtype 切换到新输入法的新类型。
public void showInputMethodAndSubtypeEnabler (String topId)
(译者注:此方法为3.0中新增的方法)
public void showInputMethodPicker ()
(译者注:显示输入法菜单列表)
public boolean showSoftInput (View view, int flags, ResultReceiver resultReceiver)
如需要,显式要求当前输入法的软键盘区域向用户显示。当用户与视图交互,用户表示要开始执行输入操作时,可以调用此方法。
参数
view 当前焦点视图,可接受软键盘输入。
flags 提供额外的操作标志。当前可以是0或SHOW_IMPLICIT 位设置。
resultReceiver 如不为空,当IME处理请求告诉你完成时调用。你收到的结果码可以是RESULT_UNCHANGED_SHOWN, RESULT_UNCHANGED_HIDDEN, RESULT_SHOWN, 或 RESULT_HIDDEN 。
public boolean showSoftInput (View view, int flags)
showSoftInput(View, int, ResultReceiver)的无返回值版:如需要,显式要求当前输入法的软键盘区域向用户显示。
参数
view 当前焦点视图,可接受软键盘输入。
flags 提供额外的操作标志。当前可以是0或SHOW_IMPLICIT 位设置。
public void showSoftInputFromInputMethod (IBinder token, int flags)
显示输入法的软键盘区域,这样用户可以到看到输入法窗口并能与其交互。只能由当前激活输入法调用,因需令牌(token)验证。
参数
token 在输入法启动时提供令牌验证,验证后可对其进行操作。
flags 提供额外的操作标志。可以是0或 SHOW_IMPLICIT, SHOW_FORCED位设置。
public void showStatusIcon (IBinder imeToken, String packageName, int iconId)
(译者注:显示状态栏图标?)
public boolean switchToLastInputMethod (IBinder imeToken)
public void toggleSoftInput (int showFlags, int hideFlags)
(译者注:切换软键盘)
public void toggleSoftInputFromWindow (IBinder windowToken, int showFlags, int hideFlags)
本方法切换输入法的窗口显示。如输入窗口已显示,它隐藏。如无输入窗口则显示。
参数
windowToken 由窗口请求View.getWindowToken()返回得到的令牌(token)。
showFlags 提供额外的操作标志。当前可以为0或 HIDE_IMPLICIT_ONLY位设置。
hideFlags 提供额外的操作标志。可以是0或 HIDE_IMPLICIT_ONLY, HIDE_NOT_ALWAYS位设置。
public void updateCursor (View view, int left, int top, int right, int bottom)
返回窗口的当前光标位置。
public void updateExtractedText (View view, int token, ExtractedText text)
(译者注:当内容变化时文本编辑器调用此方法,通知其新提取文本。)
public void updateSelection (View view, int selStart, int selEnd, int candidatesStart, int candidatesEnd)
返回当前选择区域。
发表评论
-
Android Studio一些使用快捷键
2016-12-17 10:17 67901.command+delete 删除一行代码 2.co ... -
Freeline快速集成
2016-11-11 16:30 78231. Freeline是什么? Freelin ... -
android:installLocation简析
2016-10-08 16:42 6547在Froyo(android 2.2,API Level:8) ... -
防止Service被系统轻易回收
2013-11-09 17:14 7576最近在使用android 4.1系统的时候,发现在手机休眠一段 ... -
手机浏览器打开应用或应用市场
2013-10-17 14:54 2035当在项目中出现下列情形: 应用开发商想对手机注册用 ... -
ListView显示不同布局(模拟ExpandListView)
2013-09-12 15:05 5939public class MainActivity ext ... -
多点触控之MotionEvent.ACTION_MASK作用
2013-07-23 14:49 2020ACTION_MASK在Android中是应用于多点触摸操作, ... -
Using Ant to Automate Building Android Applications
2013-05-23 13:32 2072Using Ant to Automate Building ... -
Android Bitmap getByteCount和getRowBytes
2013-05-03 11:16 2401Bitmap关于内存占用的API 1、getRowB ... -
音频功能实现
2013-04-25 14:49 11371.音频PCM转SPX格式:http://blog.csdn. ... -
MAC下Android的Eclipse开发环境的搭建
2013-04-20 09:42 1101一.Eclipse的下载 ... -
屏幕点亮和关闭广播监听
2013-04-07 21:49 2575private void registerScreenActi ... -
mac上配置adb
2013-04-06 17:50 1285问:为什么要配置ADB ? 答:不配置的话,每次用到ADB都要 ... -
Notification用法复习(3.0以后版本)
2012-11-04 11:33 3121使用Notification的示例代码: public c ... -
Android应用icon图标
2012-07-07 15:02 1528对于Android平台来说,不同分辨率下Icon的大小设计有着 ... -
键盘自动弹出
2012-04-25 17:28 1003Timer timer = new Timer(); ... -
Eclipse 默认打开Android xml 布局
2012-04-21 17:02 2047今天新装了Android开发环境后,新建一个工程,打开xml发 ... -
苹果开发android 第一步
2012-04-14 22:50 1146今天开始,准备使用mac来进行android开发,将开发中遇到 ... -
SpannableStringBuilder的简单用法
2012-02-29 14:29 2337一段代码,贴了自己以后看: TextView mText ... -
Intent打开各种文件
2011-11-25 16:19 15361.Android打开系统播放器: Uri uri = ...
相关推荐
Android 底部控件随软键盘弹出而上移demo
Android高级应用源码-android解决软键盘遮挡输入框的示例代码.rar
android 软键盘隐藏 inputmethod 控制 edittext Android是一个针对触摸屏专门设计的操作系统,当点击编辑框,系统自动为用户弹出软键盘,以便用户进行输入。 那么,弹出软键盘后必然会造成原有布局高度的减少,...
主要介绍了Android软键盘弹出时的界面控制方法,结合实例形式分析了Android软键盘弹出后的三种模式,涉及Android针对AndroidManifet.xml的修改技巧,需要的朋友可以参考下
拿到这个需求的第一反应就是写一个监听来监听键盘的显示和隐藏来控制输入框的显示和隐藏,控制文本框中的内容。 所以我做了如下操作: 指定android:windowSoftInputMode=”adjustResize|stateAlwaysHidden”这个的...
本文实例分析了Android编程之软键盘的隐藏显示方法。分享给大家供大家参考,具体如下: Android是一个针对触摸屏专门设计的操作系统,当点击编辑框,系统自动为用户弹出软键盘,以便用户进行输入。 那么,弹出软键盘...
Android软键盘显示模式: Android定义了一个属性,名字为windowSoftInputMode, 用它可以让程序可以控制活动主窗口调整的方式。我们可以在AndroidManifet.xml中对Activity进行设置。如:android:...
android 软件盘的变化监听,监听软键盘在不同手机中的高度,动态控制布局的的高度.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
系统输入法弹出方式.当输入内容时输入框被系统键盘遮挡了,影响了用户操作体验,这就是开发中非常常见的软键盘遮挡的问题,该如何解决?下码来看吧
Android背光控制 android 软键盘研究成果(默认弹出和按钮点出)
一、软键盘显示的原理 软件盘的本质是什么?软键盘其实是一个Dialog!... android定义了一个属性,名字为windowSoftInputMode, 用它可以让程序可以控制活动主窗口调整的方式。我们可以在AndroidManifet.xml中对Activ
//3、如果需要控制输入框的显示与隐藏,可以实现OnInputViewVisibleListener接口; public class SoftInputAdjustLayout extends RelativeLayout { private static final String TAG = SoftInputAdjustLayout.class...
Android 实现全屏模式下软键盘监听 解决全屏模式设置softinputmode 失效问题(监听软键盘主动控制view状态以适配键盘弹出策略)
相信大家都清楚,Google 官方提供给开发者控制软键盘显示隐藏的方法不多,「windowSoftInputMode」算是我们可控制的软键盘弹出模式的方法之一。关于其属性的说明Google 官方和网上的教程说了很多,他的属性值由两...
QWERTY 全键盘; 310 万像素摄像头。 流媒体 支持视频格式: H.264 、流媒体、 3GPP 、 MPEG4 和 Codec 3GP ;支持音频格式: MP3 、 AAC 、 AAC+ 、 W MA 、 MPEG4 、 WAV 、 MIDI 、 REAL 、 AUDIO 和 OGG ;支持...
1.5.3 硬键盘和软键盘 8 1.6 android 开发 8 1.6.1 如何使用本书中的秘诀 8 .1.6.2 好好设计应用程序 9 1.6.3 保持向前兼容 9 1.6.4 健壮性 10 1.7 软件开发工具包 10 1.7.1 安装与更新 10 1.7.2 软件特性和...
NavigationViewHelper- 一个快速实现虚拟导航栏控制及底部软键盘控制帮助类库 简介: 一个Android项目中不常使用(国内就华为有)的虚拟导航栏控制帮助类.有问题欢迎issue。 后续版本迁移至维护不再做更新 主要功能 ...