关于InputMethodManager的使用方法

InputMethodManager是一个用于控制显示或隐藏输入法面板的类(当然还有其他作用)。
获取InPutMethodManager的方法很简单。

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

分别介绍其使用方法。

1.showSoftInput(View view, int flags)   显示输入法面板

package token.token;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.IBinder;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;

public class TokenActivity extends Activity {
    /** Called when the activity is first created. */
    EditText et = null;
    InputMethodManager imm = null;
    IBinder ib = null;
    Button bt = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        et = (EditText)findViewById(R.id.edit);
        bt = (Button)findViewById(R.id.button);

        imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    }
    public void aa(View v){
        et.requestFocus();//       imm.showSoftInput(et, imm.SHOW_FORCED);//chenggong
        imm.showSoftInput(et, 0); //        imm.hideSoftInputFromWindow(bt.getWindowToken(), 0);
    }
}

这个方法的两个参数,showSoftInput(View view, int flags)。view是要在哪个view的基础上显示输入面板,同时再使用该方法之前,view需要获得焦点,可以通过requestFocus()方法来设定。

2.hideSoftInputFromWindow(IBinder windowToken, int flags)  隐藏输入法面板

代码如下:

public void aa(View v){
       ib = et.getWindowToken();
       imm.showSoftInput(bt, 0);
       imm.hideSoftInputFromWindow(bt.getWindowToken(), 0);
   }

这里隐藏输入框中的两个参数前一个参数也可以写成et.getWindowToken()。

转自http://my.oschina.net/jbcao/blog/61035

时间: 2024-12-14 08:09:31

关于InputMethodManager的使用方法的相关文章

Android(java)学习笔记115:Android InputMethodManager输入法简介

正文 一.结构 public final class InputMethodManager extends Object Java.lang.Object android.view.inputmethod.InputMethodManager 二.类概述 整个输入法框架(IMF)结构的核心API,应用程序之间进行调度和当前输入法交互.你可以用Context.getSystemService()取得这一接口的实例. 架构总述(Architecture Overview) 输入法框架(IMF)共有三

Android判断软键盘弹出并隐藏的简单完美解决方案

最近项目中有一个编辑框,下面是个ListView.在触发编辑框弹出软键盘后,ListView还能滑动,并且ListView的item还能响应单击.这样的体验效果很不好.于是便想在滑动或单击item时判断键盘是否弹出,若弹出,则把它隐藏. 网上一搜,发现Android并没有直接提供软键盘的弹出与隐藏判断,一些解决方案诸如判断父控件的高度或者判断 if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT

android如何调用显示和隐藏系统默认的输入法(一)

1.调用显示系统默认的输入法 方法一. InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(m_receiverView(接受软键盘输入的视图(View)),InputMethodManager.SHOW_FORCED(提供当前操作的标记,SHOW_FORCED表示强制显示)); 方法二. InputMethodManager

android softinput 相关

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_UNSPECIFIED);其中参数可以根据个人需要调整,参数如下:[A]stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置[B]stateUnchanged:当这个activity出现时,软键盘将

Android开发:在EditText中关闭软键盘 转来的

1.EditText有焦点(focusable为true)阻止输入法弹出 Java代码   editText=(EditText)findViewById(R.id.txtBody); editText.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { editText.setInputType(InputType.TYPE_NULL); // 关闭软键盘

自定义dialog样式,自动弹出软件盘

开发中android自带dialog样式有时候不能满足我们的需求,这时候就需要自定义样式了,调用dialog的setView方法可以自定义布局,代码如下 final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context); View alertDialogView = View.inflate(context, R.layout.comment_input_layout, null); final Ale

Android 软键盘

一些重要常量含义: HIDE_IMPLICIT_ONLY     常量值: 1 (0x00000001) hideSoftInputFromWindow(IBinder, int)中的标志,表示如果用户未显式地显示软键盘窗口,则隐藏窗口. HIDE_NOT_ALWAYS         常量值: 2 (0x00000002) hideSoftInputFromWindow(IBinder, int)中的标志,表示软键盘窗口总是隐藏,除非开始时以SHOW_FORCED显示. RESULT_HIDD

android 点击关闭软键盘

在项目中,editText获取焦点后,会自动弹出软键盘,关闭的时候一般需要按返回键或者点击软键盘上的按钮, 即使当前activity已经finish掉,软键盘依然存在,会影响用户的体验. 网上目前有很多很详细的办法,比如点击其他空白区域,软键盘就会消失之类的方法,我们项目中没有要求这个,要求的是只要 不遮挡其他操作,还有当前Activity关闭掉后软键盘消失就行, 今天给大家分享两个办法: //此方法,如果显示则隐藏,如果隐藏则显示 private void hintKbOne() { Inpu

Android开发:在EditText中关闭软键盘

1.EditText有焦点(focusable为true)阻止输入法弹出 Java代码   editText=(EditText)findViewById(R.id.txtBody); editText.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { editText.setInputType(InputType.TYPE_NULL); // 关闭软键盘