android内置键盘实例

来源:互联网 发布:官方原版windows xp 编辑:程序博客网 时间:2024/05/22 06:33

android内置键盘开发,刚听到的时候其实很懵逼的 。一听这个感觉是要从系统层入手。其实内置在应用中的keyboard没有想象中的那么难。

1、 布局文件 系统提供的KeyboardView 属性都是基本属性

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="#FCFCFC" >    <RelativeLayout        android:id="@+id/top_layout"        android:layout_width="match_parent"        android:layout_height="50dip"        android:layout_alignParentLeft="true"        android:layout_alignParentTop="true"        android:background="#3E98FF"        android:orientation="vertical" >        <TextView            android:layout_width="match_parent"            android:layout_height="50dip"            android:gravity="center"            android:text="添加车辆"            android:textColor="#FFFFFF"            android:textSize="16sp" />    </RelativeLayout>    <RelativeLayout        android:id="@+id/gsxx_layout"        android:layout_width="match_parent"        android:layout_height="60dip"        android:layout_alignParentLeft="true"        android:layout_below="@+id/top_layout"        android:background="#FFFFFF" >        <TextView            android:id="@+id/imageView1"            android:layout_width="60dip"            android:layout_height="match_parent"            android:layout_alignParentLeft="true"            android:layout_marginLeft="10dip"            android:gravity="center_vertical"            android:text="品牌:"            android:textColor="#2F2F2F"            android:textSize="15sp"            tools:ignore="ContentDescription" />        <EditText            android:id="@+id/tv_carbrand"            android:layout_width="match_parent"            android:layout_height="match_parent"            android:layout_marginRight="10dip"            android:layout_toRightOf="@+id/imageView1"            android:background="@color/transparent"            android:gravity="center_vertical"            android:hint="输入车辆品牌"            android:textColor="#2F2F2F"            android:textSize="15sp" />        <View            android:layout_width="match_parent"            android:layout_height="0.5dp"            android:layout_alignParentBottom="true"            android:background="#E4E4E4" />    </RelativeLayout>    <RelativeLayout        android:id="@+id/gsdt_layout"        android:layout_width="match_parent"        android:layout_height="60dip"        android:layout_alignParentLeft="true"        android:layout_below="@+id/gsxx_layout"        android:background="#FFFFFF" >        <TextView            android:id="@+id/imageView3"            android:layout_width="60dip"            android:layout_height="match_parent"            android:layout_alignParentLeft="true"            android:layout_marginLeft="10dip"            android:gravity="center_vertical"            android:text="型号:"            android:textColor="#2F2F2F"            android:textSize="15sp"            tools:ignore="ContentDescription" />        <EditText            android:id="@+id/tv_cartype"            android:layout_width="match_parent"            android:layout_height="match_parent"            android:layout_marginRight="10dip"            android:layout_toRightOf="@+id/imageView3"            android:background="@color/transparent"            android:gravity="center_vertical"            android:hint="输入车辆型号"            android:textColor="#2F2F2F"            android:textSize="15sp" />        <View            android:layout_width="match_parent"            android:layout_height="0.5dp"            android:layout_alignParentBottom="true"            android:background="#E4E4E4" />    </RelativeLayout>    <RelativeLayout        android:id="@+id/gswh_layout"        android:layout_width="match_parent"        android:layout_height="60dip"        android:layout_alignParentLeft="true"        android:layout_below="@+id/gsdt_layout"        android:background="#FFFFFF" >        <TextView            android:id="@+id/imageView7"            android:layout_width="60dip"            android:layout_height="match_parent"            android:layout_alignParentLeft="true"            android:layout_marginLeft="10dip"            android:gravity="center_vertical"            android:text="车牌:"            android:textColor="#2F2F2F"            android:textSize="15sp"            tools:ignore="ContentDescription" />        <EditText            android:id="@+id/tv_carplate"            android:layout_width="match_parent"            android:layout_height="match_parent"            android:layout_marginRight="10dip"            android:layout_toRightOf="@+id/imageView7"            android:background="@color/transparent"            android:gravity="center_vertical"            android:hint="输入车辆车牌"            android:textColor="#2F2F2F"            android:textSize="15sp" />        <View            android:layout_width="match_parent"            android:layout_height="0.5dp"            android:layout_alignParentBottom="true"            android:background="#E4E4E4" />    </RelativeLayout>    <Button        android:id="@+id/tjcl_btn"        android:layout_width="match_parent"        android:layout_height="45dp"        android:layout_alignParentLeft="true"        android:layout_below="@+id/gswh_layout"        android:layout_margin="15dp"        android:gravity="center"        android:text="添加"        android:textColor="#FFFFFF"        android:textSize="15sp" />    <RelativeLayout        android:layout_width="fill_parent"        android:layout_height="wrap_content" >        <android.inputmethodservice.KeyboardView            android:id="@+id/keyboard_view"            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:layout_alignParentBottom="true"            android:focusable="true"            android:focusableInTouchMode="true"            android:background="@color/gray"            android:paddingTop="5dp"            android:paddingBottom="5dp"            android:paddingRight="20dp"            android:keyTextColor="@color/keybord_bg"            android:keyBackground="@drawable/btn_keyboard_key"            android:visibility="gone" />    </RelativeLayout></RelativeLayout>

2、 键盘英文布局xml

<?xml version="1.0" encoding="UTF-8"?><Keyboard xmlns:android="http://schemas.android.com/apk/res/android"    android:horizontalGap="0.0px"    android:keyHeight="@dimen/key_height"    android:keyWidth="6.8%p"    android:verticalGap="20px" >     <Row>        <Key            android:codes="48"            android:horizontalGap="4%p"            android:keyEdgeFlags="left"            android:keyIcon="@drawable/zero" />        <Key            android:codes="49"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/one" />        <Key            android:codes="50"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/two" />        <Key            android:codes="51"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/three" />        <Key            android:codes="52"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/four" />        <Key            android:codes="53"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/five" />        <Key            android:codes="54"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/six" />        <Key            android:codes="55"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/seven" />        <Key            android:codes="56"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/eight" />        <Key            android:codes="57"            android:horizontalGap="2.8%p"            android:keyEdgeFlags="right"            android:keyIcon="@drawable/nice" />    </Row>    <Row>        <Key            android:codes="81"            android:horizontalGap="4%p"            android:keyEdgeFlags="left"            android:keyIcon="@drawable/q" />        <Key            android:codes="87"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/w" />        <Key            android:codes="69"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/e" />        <Key            android:codes="82"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/r" />        <Key            android:codes="84"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/t" />        <Key            android:codes="89"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/y" />        <Key            android:codes="85"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/u" />        <Key            android:codes="73"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/i" />        <Key            android:codes="79"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/o" />        <Key            android:codes="80"            android:horizontalGap="2.8%p"            android:keyEdgeFlags="right"            android:keyIcon="@drawable/p" />    </Row>    <Row>        <Key            android:codes="65"            android:horizontalGap="8.2%p"            android:keyEdgeFlags="left"            android:keyIcon="@drawable/a"/>        <Key            android:codes="83"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/s"/>        <Key            android:codes="68"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/d"/>        <Key            android:codes="70"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/f"/>        <Key            android:codes="71"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/g" />        <Key            android:codes="72"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/h"/>        <Key            android:codes="74"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/j"/>        <Key            android:codes="75"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/k"/>        <Key            android:codes="76"            android:horizontalGap="2.8%p"            android:keyEdgeFlags="right"            android:keyIcon="@drawable/l"/>    </Row>    <Row>        <Key            android:codes="-2"            android:isModifier="true"            android:isSticky="true"            android:keyEdgeFlags="right"            android:keyIcon="@drawable/province"            android:horizontalGap="2%p"            android:keyWidth="8%p"/>        <Key            android:horizontalGap="7.5%p"            android:codes="90"            android:keyIcon="@drawable/z" />        <Key            android:horizontalGap="2.8%p"            android:codes="88"            android:keyIcon="@drawable/x" />        <Key            android:horizontalGap="2.8%p"            android:codes="67"            android:keyIcon="@drawable/c" />        <Key            android:horizontalGap="2.8%p"            android:codes="86"            android:keyIcon="@drawable/v" />        <Key            android:horizontalGap="2.8%p"            android:codes="66"            android:keyIcon="@drawable/b" />        <Key            android:horizontalGap="2.8%p"            android:codes="78"            android:keyIcon="@drawable/n" />        <Key            android:horizontalGap="2.8%p"            android:codes="77"            android:keyIcon="@drawable/m" />        <Key            android:codes="-5"            android:isRepeatable="true"            android:keyEdgeFlags="right"            android:keyIcon="@drawable/delete"             android:horizontalGap="7.5%p"            android:keyWidth="8%p" />    </Row></Keyboard>

中文布局xml

<?xml version="1.0" encoding="utf-8"?><Keyboard xmlns:android="http://schemas.android.com/apk/res/android"    android:keyWidth="6.8%p" android:horizontalGap="20px"    android:verticalGap="20px" android:keyHeight="@dimen/key_height">     <Row>        <Key            android:codes="-48"            android:horizontalGap="4%p"            android:keyEdgeFlags="left"            android:keyIcon="@drawable/bj"/>        <Key            android:codes="-49"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/tj" />        <Key            android:codes="-50"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/hbs" />        <Key            android:codes="-51"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/sd" />        <Key            android:codes="-52"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/sx" />        <Key            android:codes="-53"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/nmg" />        <Key            android:codes="-54"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/ll" />        <Key            android:codes="-55"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/jl" />        <Key            android:codes="-56"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/hlj" />        <Key            android:codes="-57"            android:horizontalGap="2.8%p"            android:keyEdgeFlags="right"            android:keyIcon="@drawable/sh" />    </Row>    <Row>        <Key            android:codes="-58"            android:horizontalGap="4%p"            android:keyEdgeFlags="left"            android:keyIcon="@drawable/js" />        <Key            android:codes="-59"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/zj" />        <Key            android:codes="-60"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/ah" />        <Key            android:codes="-61"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/fj" />        <Key            android:codes="-62"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/jx" />        <Key            android:codes="-63"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/yu" />        <Key            android:codes="-64"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/hb" />        <Key            android:codes="-65"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/hn" />        <Key            android:codes="-66"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/gd" />        <Key            android:codes="-67"            android:horizontalGap="2.8%p"            android:keyEdgeFlags="right"            android:keyIcon="@drawable/gx" />    </Row>    <Row>        <Key            android:codes="-68"            android:horizontalGap="13%p"            android:keyEdgeFlags="left"            android:keyIcon="@drawable/cq"/>        <Key            android:codes="-69"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/sc"/>        <Key            android:codes="-70"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/gz"/>        <Key            android:codes="-71"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/yn"/>        <Key            android:codes="-72"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/xz" />        <Key            android:codes="-73"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/sxs"/>        <Key            android:codes="-74"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/gs"/>        <Key            android:codes="-75"            android:horizontalGap="2.8%p"            android:keyIcon="@drawable/qh"/>    </Row>    <Row>        <Key            android:codes="-2"            android:isModifier="true"            android:isSticky="true"            android:keyEdgeFlags="right"            android:keyIcon="@drawable/abc"            android:horizontalGap="2%p"            android:keyWidth="8%p"/>        <Key            android:horizontalGap="12.3%p"            android:codes="-76"            android:keyIcon="@drawable/hns" />        <Key            android:horizontalGap="2.8%p"            android:codes="-77"            android:keyIcon="@drawable/xj" />        <Key            android:horizontalGap="2.8%p"            android:codes="-78"            android:keyIcon="@drawable/xg" />        <Key            android:horizontalGap="2.8%p"            android:codes="-79"            android:keyIcon="@drawable/am" />        <Key            android:horizontalGap="2.8%p"            android:codes="-80"            android:keyIcon="@drawable/tb" />        <Key            android:horizontalGap="2.8%p"            android:codes="-81"            android:keyIcon="@drawable/lx" />        <Key            android:codes="-5"            android:isRepeatable="true"            android:keyEdgeFlags="right"            android:keyIcon="@drawable/delete"             android:horizontalGap="12.3%p"            android:keyWidth="8%p" />    </Row></Keyboard>

keyheight:代表按键的高度,取值同上。
horizontalGap:代表按键前的间隙(水平方向)
keyWidth:代表按键的宽度,可以为精确值或者相对
verticalGap:代表按键前的间隙(垂直方向)
keyEdgeFlags:指定按键的对齐指令,取值为left或者right
keyIcon:代表按键显示的图标内容(一般不用图片显示会很模糊)
keyOutputText:指定按键输出的文本内容,取值为字
isRepeatable:指定按键是否是可重复的(长按重复按键功能)
codes:代表按键对应的输出值(数字英文对应相应的ASCII表也可以自己填写判断)

3、KeyboardUtils键盘控制类

package zw.com.keybord;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.content.Context;import android.inputmethodservice.Keyboard;import android.inputmethodservice.KeyboardView;import android.inputmethodservice.Keyboard.Key;import android.inputmethodservice.KeyboardView.OnKeyboardActionListener;import android.text.Editable;import android.view.View;import android.widget.EditText;public class KeyboardUtil {    private Context ctx;    private Activity act;    private static KeyboardView keyboardView;    private Keyboard k1;// 字母键盘    private Keyboard k2;// 数字键盘    public boolean isnun = false;// 是否省份    public boolean isupper = false;// 是否大写    private EditText ed;    private Map<Integer, String> map ;    public KeyboardUtil(Activity act, Context ctx, EditText edit) {        this.act = act;        this.ctx = ctx;        this.ed = edit;        putMap();        k1 = new Keyboard(ctx, R.xml.qwerty);        k2 = new Keyboard(ctx, R.xml.symbols);        keyboardView = (KeyboardView) act.findViewById(R.id.keyboard_view);        keyboardView.setKeyboard(k2);        keyboardView.setEnabled(true);        keyboardView.setPreviewEnabled(true);        keyboardView.setOnKeyboardActionListener(listener);    }    private void putMap(){        map = new HashMap<Integer, String>();        map.put(-48, "京");        map.put(-49, "津");        map.put(-50, "冀");        map.put(-51, "鲁");        map.put(-52, "晋");        map.put(-53, "蒙");        map.put(-54, "辽");        map.put(-55, "吉");        map.put(-56, "黑");        map.put(-57, "沪");        map.put(-58, "苏");        map.put(-59, "浙");        map.put(-60, "皖");        map.put(-61, "闽");        map.put(-62, "赣");        map.put(-63, "豫");        map.put(-64, "鄂");        map.put(-65, "湘");        map.put(-66, "粤");        map.put(-67, "桂");        map.put(-68, "渝");        map.put(-69, "川");        map.put(-70, "贵");        map.put(-71, "云");        map.put(-72, "藏");        map.put(-73, "陕");        map.put(-74, "甘");        map.put(-75, "青");        map.put(-76, "琼");        map.put(-77, "新");        map.put(-78, "港");        map.put(-79, "澳");        map.put(-80, "台");        map.put(-81, "宁");    }    private OnKeyboardActionListener listener = new OnKeyboardActionListener() {        @Override        public void swipeUp() {        }        @Override        public void swipeRight() {        }        @Override        public void swipeLeft() {        }        @Override        public void swipeDown() {        }        @Override        public void onText(CharSequence text) {        }        @Override        public void onRelease(int primaryCode) {        }        @Override        public void onPress(int primaryCode) {        }        @Override        public void onKey(int primaryCode, int[] keyCodes) {            Editable editable = ed.getText();            int start = ed.getSelectionStart();            if (primaryCode == Keyboard.KEYCODE_CANCEL) {// 完成                hideKeyboard();            } else if (primaryCode == Keyboard.KEYCODE_DELETE) {// 回退                if (editable != null && editable.length() > 0) {                    if (start > 0) {                        editable.delete(start - 1, start);                    }                }            } else if (primaryCode == Keyboard.KEYCODE_SHIFT) {// 大小写切换                changeKey();                keyboardView.setKeyboard(k1);            } else if (primaryCode == Keyboard.KEYCODE_MODE_CHANGE) {// 数字键盘切换                if (isnun) {                    isnun = false;                    keyboardView.setKeyboard(k2);                } else {                    isnun = true;                    keyboardView.setKeyboard(k1);                }            } else if (primaryCode < -47 && primaryCode > -82) { // 如果返回codes在-47和-82之间  添加指定中文                editable.insert(start, map.get(primaryCode));            }else {                editable.insert(start, Character.toString((char) primaryCode));            }        }    };    /**     * 键盘大小写切换     */    private void changeKey() {        List<Key> keylist = k1.getKeys();        if (isupper) {//大写切换小写            isupper = false;            for(Key key:keylist){                if (key.label!=null && isword(key.label.toString())) {                    key.label = key.label.toString().toLowerCase();                    key.codes[0] = key.codes[0]+32;                }            }        } else {//小写切换大写            isupper = true;            for(Key key:keylist){                if (key.label!=null && isword(key.label.toString())) {                    key.label = key.label.toString().toUpperCase();                    key.codes[0] = key.codes[0]-32;                }            }        }    }    public void showKeyboard() {//        int visibility = keyboardView.getVisibility();//        if (visibility == View.GONE || visibility == View.INVISIBLE) {            keyboardView.setVisibility(View.VISIBLE);//        }    }    public void hideKeyboard() {//        int visibility = keyboardView.getVisibility();//        if (visibility == View.VISIBLE) {            keyboardView.setVisibility(View.GONE);//        }    }    private boolean isword(String str){        String wordstr = "abcdefghijklmnopqrstuvwxyz";        if (wordstr.indexOf(str.toLowerCase())>-1) {            return true;        }        return false;    }}

4、主页面

package zw.com.keybord;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.text.InputType;import android.view.MotionEvent;import android.view.View;import android.view.inputmethod.InputMethodManager;import android.widget.EditText;import android.widget.Toast;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * Created by 15090 on 2016/11/27. */public class MainActivity  extends Activity implements View.OnClickListener,View.OnTouchListener{    private EditText tv_carplate, tv_cartype, tv_carbrand;    private KeyboardUtil mKeyboardUtil;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();    }    private void initView() {        tv_carplate = (EditText) findViewById(R.id.tv_carplate);        tv_cartype = (EditText) findViewById(R.id.tv_cartype);        tv_carbrand = (EditText) findViewById(R.id.tv_carbrand);        tv_carplate.setOnTouchListener(this);        tv_carbrand.setOnTouchListener(this);        tv_cartype.setOnTouchListener(this);    }    @Override    public void onClick(View key) {        switch (key.getId()) {            case R.id.tjcl_btn:                EditText editText_1 = (EditText) findViewById(R.id.tv_carbrand);                String str_pp = editText_1.getText().toString();                if (null != str_pp && str_pp.trim().length() > 0) {                    EditText editText_2 = (EditText) findViewById(R.id.tv_cartype);                    String str_xh = editText_2.getText().toString();                    if (null != str_xh && str_xh.trim().length() > 0) {                        EditText editText_3 = (EditText) findViewById(R.id.tv_carplate);                        String str_cp = editText_3.getText().toString();                        Pattern pattern = Pattern                                .compile("^[\u4e00-\u9fa5]{1}[A-Z]{1}[A-Z_0-9]{5}$");                        Matcher matcher = pattern.matcher(str_cp);                        if (matcher.matches()) {//                            addCar(str_pp, str_xh, str_cp);                            Toast.makeText(this,"输入成功",Toast.LENGTH_SHORT).show();                        } else {                            Toast.makeText(this,"车牌号格式不对!",Toast.LENGTH_SHORT).show();                        }//                  if (null != str_cp && str_cp.trim().length() > 0) {//                      Toast.makeText(AddCarActivity.this, "添加车辆成功!",//                              Toast.LENGTH_SHORT).show();//                      addCar(str_pp, str_xh, str_cp);//                  } else {//                      Toast.makeText(AddCarActivity.this, "车牌不能为空!",//                              Toast.LENGTH_SHORT).show();//                  }                    } else {                        Toast.makeText(this,"型号不能为空!",Toast.LENGTH_SHORT).show();                    }                } else {                    Toast.makeText(this,"品牌不能为空!",Toast.LENGTH_SHORT).show();                }                break;            default:                break;        }    }    @Override    public boolean onTouch(View v, MotionEvent arg1) {        switch (v.getId()) {            case R.id.tv_carplate:                int inputback = tv_carplate.getInputType();                tv_carplate.setInputType(InputType.TYPE_NULL);                if (mKeyboardUtil == null) {                    mKeyboardUtil = new KeyboardUtil(this,                            getApplicationContext(), tv_carplate);                    mKeyboardUtil.showKeyboard();                } else {                    mKeyboardUtil.showKeyboard();                }                manageSoftInput(getApplicationContext(), tv_carbrand, true);               manageSoftInput(getApplicationContext(), tv_cartype, true);                tv_carplate.setInputType(inputback);                break;            case R.id.tv_carbrand:                if (mKeyboardUtil != null) {                    mKeyboardUtil.hideKeyboard();                }            case R.id.tv_cartype:                if (mKeyboardUtil != null) {                    mKeyboardUtil.hideKeyboard();                }                break;            default:                break;        }        return false;    }    /**     * 键盘操作     *     * @param isColse     *            是否要关闭 true 关闭,false 打开     */    public static void manageSoftInput(Context ctx, EditText editText,                                       boolean isColse) {        InputMethodManager imm = (InputMethodManager) ctx                .getSystemService(Context.INPUT_METHOD_SERVICE);        if (isColse) {            imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);        } else {            imm.showSoftInput(editText, 0);        }    }}

好了,应用内置键盘就这样结束了。

源码连接

0 0
原创粉丝点击