输入法设置不响应Enter键

Android4.0以上全键盘设备的bug - 输入法不响应OK键
操作步骤:
1. 进入“设置” -> "语言和输入法
2. 在“键盘和输入法”里,按ENTER键或者DAPD_CENTER键时,输入法无响应
要求是:按ENTER键或者DAPD_CENTER键时,启用或禁用该输入法

原因:
InputMethodPreference在继承CheckBoxPreference的时候,自己定义了layout,在这个layout文件中有两个View请求了focus,导致外层的view无法响应focus.

解决方法:
Step1. 去除这些focus,让外层能够focus
Step2. 监听InputMethodPreference,如果被触发则启用/禁用该输入法

附加代码:
在增加InputMethodPreference控件的时候增加其监听
for(int i = 0; i < N; ++i){
		mKeyboardSettingsCategory.addPreference(mKeyboardMethodPreferencList.get(i));
		mKeyboardMethodPreferencList.get(i).setOnPreferenceChangeListener(new OnPreferenceChangeListener(){
			@Override
			public boolean OnPreferenceChange(Preference preference, Object newValue){
				因为这个preference是对InputMethodPreference设置的监听,所以可以强行转换成InputMethodPreference
				((InputMethodPreference)preference).setChecked((Boolean)newValue, true);	//newValue代表是选中状态还是非选中状态;true是代表要更改这个输入法的设置到系统设置
				return false
			}
		}
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值