`

Android软键盘学习InputMethodManager

阅读更多

当我们在Android提供的EditText中单击的时候,会自动的弹出软键盘,其实对于软键盘的控制我们可以通过InputMethodManager这个类来实现。我们需要控制软键盘的方式就是两种一个是像EditText那样当发生onClick事件的时候出现软键盘,还有就是当打开某个程序的时候自动的弹出软键盘。

view plaincopy to clipboardprint?
01.public class InputMethodManagerTest extends Activity implements OnClickListener{  
02.    private Button button;  
03.      
04.    @Override 
05.    protected void onCreate(Bundle savedInstanceState) {  
06.        // TODO Auto-generated method stub  
07.        super.onCreate(savedInstanceState);  
08.        LinearLayout layout=new LinearLayout(this);  
09.        LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);  
10.        button=new Button(this);  
11.        button.setId(123);  
12.        button.setText("Hello GaoMatrix");  
13.        button.setOnClickListener(this);  
14.        layout.addView(button, layoutParams);  
15.        setContentView(layout);  
16.          
17.        /** 
18.         * 用一个定时器控制当打开这个Activity的时候就出现软键盘 
19.         */ 
20.        Timer timer=new Timer();  
21.        timer.schedule(new TimerTask() {  
22.            @Override 
23.            public void run() {  
24.                InputMethodManager inputMethodManager=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  
25.                inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);  
26.            }  
27.        }, 2000);  
28.    }  
29.    /** 
30.     * 当单击事件的时候触发显示软键盘 
31.     */ 
32.    @Override 
33.    public void onClick(View v) {  
34.        InputMethodManager inputMethodManager=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  
35.        inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);  
36.    }  
37.} 
public class InputMethodManagerTest extends Activity implements OnClickListener{
 private Button button;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  LinearLayout layout=new LinearLayout(this);
  LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
  button=new Button(this);
  button.setId(123);
  button.setText("Hello GaoMatrix");
  button.setOnClickListener(this);
  layout.addView(button, layoutParams);
  setContentView(layout);
  
  /**
   * 用一个定时器控制当打开这个Activity的时候就出现软键盘
   */
  Timer timer=new Timer();
  timer.schedule(new TimerTask() {
   @Override
   public void run() {
    InputMethodManager inputMethodManager=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
   }
  }, 2000);
 }
 /**
  * 当单击事件的时候触发显示软键盘
  */
 @Override
 public void onClick(View v) {
  InputMethodManager inputMethodManager=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
  inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
 }
}
 

这个InputMethodManager类里面的toggleSoftInput方法的API中的解释是:

This method toggles the input method window display. If the input window is already displayed, it gets hidden. If not the input window will be displayed.

这个方法在界面上切换输入法的功能,如果输入法出于现实状态,就将他隐藏,如果处于隐藏状态,就显示输入法。

而对于第二中方式进入Activity就自动显示软键盘,在一个定时器中,也就是在一个线程中执行,只不过是延迟2秒执行,原因是在onCreate函数中Android程序未将屏幕绘制完成。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/GaoMatrix/archive/2011/02/14/6183243.aspx

分享到:
评论

相关推荐

    Android判断软键盘是否弹出

    在实际应用中,除了通过`onLayout`方法,还可以使用其他方式来检测软键盘状态,比如监听`WindowInsets`的变化,或者利用`InputMethodManager`来判断。 在提供的压缩包文件`SoftKeyboardListenDemo`中,很可能包含了...

    Android 实现软键盘与EditText的交互.zip

    综上所述,这个压缩包提供了关于Android软键盘与EditText交互的解决方案,包括如何控制键盘显示、布局调整、工具类库的使用等,对于优化用户体验具有重要的实践意义。开发者可以参考这些内容,根据自己的应用需求...

    Android软键盘返回键监听.zip

    总之,监听Android软键盘的返回键事件是一项实用的功能,能够帮助开发者更好地控制用户在应用中的交互流程。无论是通过InputMethodManager,还是通过观察ViewTreeObserver,或者是自定义键盘事件,都有其适用的场景...

    Android监听输入法软键盘按键demo

    `InputMethodManager`是Android系统提供的管理输入法的类,可以用来控制软键盘的显示和隐藏。虽然它不直接提供按键监听,但我们可以通过监听IME(Input Method Editor)的动作事件来间接实现监听。通过重写`Activity...

    Android Dialog与软键盘的正确打开方式

    本文将深入探讨如何在Android中正确处理Dialog与软键盘的交互。 首先,让我们了解Android Dialog的基本用法。Dialog是基于Activity的,通常用于显示一些额外信息或获取用户输入。创建一个自定义Dialog通常涉及以下...

    android中监听软键盘的弹出与隐藏,并获取软键盘的高度

    总的来说,监听Android软键盘的弹出与隐藏,以及获取软键盘高度,可以通过多种方式实现,开发者应根据具体需求选择合适的方法。同时,要注意兼容不同的`windowSoftInputMode`设置,以确保在各种情况下都能正确处理...

    android 关闭软键盘

    ### Android关闭软键盘知识点详解 在Android开发过程中,软键盘(Soft Keyboard)的管理是非常重要的一个环节。合理的软键盘管理不仅能够提升用户体验,还能避免一些布局显示上的问题。本篇文章将详细阐述如何在...

    Android自定义输入法软键盘

    在Android平台上,自定义输入法软键盘是一种常见的需求,它允许开发者为特定的应用或设备创建个性化的输入体验。本文将深入探讨如何在Android系统中实现一个自定义输入法,主要基于提供的博客链接——《Android...

    Android 软键盘切换表情不会闪动

    "Android 软键盘切换表情不会闪动"这个问题直指一个常见的用户体验问题,即当用户在EditText中切换到表情面板时,界面可能会出现闪烁或者布局跳动的现象。这通常是因为软键盘弹出和隐藏时改变了屏幕高度,导致布局...

    Android软键盘手动显示、隐藏、布局上移和EditText上移Demo

    "Android软键盘手动显示、隐藏、布局上移和EditText上移Demo"这个项目主要关注以下几个关键知识点: 1. **软键盘的控制**: - 显示软键盘:可以通过调用`InputMethodManager`的`showSoftInput()`方法来显示软键盘...

    android 调用软键盘

    在Android开发中,软键盘的调用是用户体验中...总的来说,Android应用中的软键盘调用涉及到InputMethodManager、布局适配、Activity配置等多个方面。通过灵活运用这些知识,开发者可以为用户提供更符合预期的交互体验。

    安卓点击空白区域和点击Editext以外的地方隐藏软键盘

    在Android开发中,用户界面的交互体验至关重要,其中包括如何有效地管理软键盘的显示与隐藏。在某些场景下,我们希望用户在点击EditText之外的任何地方或者点击屏幕空白区域时,能够自动隐藏软键盘,以提供更流畅的...

    Android解决软键盘弹起时遮住登录按钮的问题

    在Activity的`onTouchEvent`方法中,如果检测到用户点击的不是EditText或其他需要输入的视图,就调用`InputMethodManager`关闭软键盘。 ```java @Override public boolean onTouchEvent(MotionEvent event) { if ...

    android 软键盘的隐藏域显示

    在Android开发中,软键盘的管理是至关重要的,尤其是在处理输入密集型的界面设计时。软键盘的自动弹出和收起有时会干扰用户界面的布局,因此开发者需要掌握如何控制软键盘的显示与隐藏。以下是从给定的代码片段中...

    EditTextjh_java_android软键盘_android_

    接着,我们关注"android软键盘"。在Android中,软键盘的显示和隐藏通常由系统自动处理。但是,有时我们可能需要在特定条件下手动控制软键盘的显示,比如在全屏模式下隐藏键盘,或者在用户点击其他地方时关闭键盘。...

    android InputMethodManager 相关资料

    Android 的输入法管理器(InputMethodManager)是一个复杂的系统组件,它管理着输入法的显示和隐藏、软键盘的显示和隐藏、候选词的显示等各种输入法相关的操作。本文将对 InputMethodManager 的组成部分、...

    Android 软键盘和emoji表情切换方案,和微信几乎一样的体验

    综上所述,构建一个与微信相似的Android软键盘和emoji切换方案涉及到多个技术层面,包括输入法服务的定制、emoji资源的整合、切换逻辑的实现以及UI设计和性能优化等。通过深入理解和实践这些知识点,开发者可以为...

    Android自定义软键盘

    在Android开发中,自定义软键盘是一个常见的需求,特别是在开发特定功能的应用或者游戏时,可能需要根据应用的需求提供个性化或定制化...通过不断学习和实践,开发者可以打造出功能强大、用户体验良好的自定义软键盘。

    Android自定义软键盘KeyboardView

    总结起来,自定义Android软键盘主要涉及以下几个步骤:创建键盘布局、设置`KeyboardView`、加载键盘、监听键盘事件以及管理系统键盘的显示与隐藏。通过`KeyboardView`,开发者可以为自己的应用打造独一无二的输入...

Global site tag (gtag.js) - Google Analytics