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);
}
}
}
好了,应用内置键盘就这样结束了。