android安卓屏蔽禁用系统输入法,自定义软键盘,解决EditText光标问题demo

目前很多的输入法都有自动提示补全功能,在一些应用场景里不适用,需要禁用系统输入法,自定义软键盘,EditText的光标问题是比较头疼的,网上的说法很多,然而大部分都是解决不了问题的。以下是本人做的一个demo供网友参考。

长宁网站建设公司成都创新互联公司,长宁网站设计制作,有大型网站制作公司丰富经验。已为长宁上千家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的长宁做网站的公司定做!

直接上代码:

xml软键盘:

        <android.inputmethodservice.KeyboardView
            android:id="@+id/keyboard_view"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@color/white"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:keyBackground="@drawable/btn_keyboard_key"
            android:keyTextColor="@color/black"
            android:visibility="gone" />

禁用系统输入法,解决EditText光标问题的重要代码:

public boolean onTouch(View v, MotionEvent event)
	{
		//隐藏输入法,显示光标
		EditText et=(EditText)v;
		int inType = et.getInputType(); // back up the input type
		if (sdkInt>=11) {
			Class<EditText> cls=EditText.class;
			try {
				Method setShowSoftInputOnFocus=cls.getMethod("setShowSoftInputOnFocus", boolean.class);
				setShowSoftInputOnFocus.setAccessible(false);
				setShowSoftInputOnFocus.invoke(et, false);
			} catch (NoSuchMethodException e) {
				e.printStackTrace();
			} catch (IllegalArgumentException e) {
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				e.printStackTrace();
			} catch (InvocationTargetException e) {
				e.printStackTrace();
			}
		}else {
			et.setInputType(android.text.InputType.TYPE_NULL); // disable soft input
			et.setInputType(inType);

		}
		keyboardUtil=null;
		keyboardUtil = new KeyboardUtil(act, ctx, et);
		et.onTouchEvent(event);// call native handler
		// restore input type
		keyboardUtil.showKeyboard();

		return true;
	}

android安卓屏蔽禁用系统输入法,自定义软键盘,解决EditText光标问题demo

其他代码就不贴了,需要完整demo的请自行下载。

附件:http://down.51cto.com/data/2367320

当前题目:android安卓屏蔽禁用系统输入法,自定义软键盘,解决EditText光标问题demo
网站网址:https://www.cdcxhl.com/article42/pgcchc.html

成都网站建设公司_创新互联,为您提供网站策划响应式网站企业网站制作做网站全网营销推广网站维护

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设