android 输入法安装,android 中如何获取系统中安装的所有输入法并以列表显示?...

匿名用户

1级

2016-07-09 回答

private void onCreateIMM() {

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

mInputMethodProperties = imm.getInputMethodList();

mLastInputMethodId = Settings.Secure.getString(getContentResolver(),

Settings.Secure.DEFAULT_INPUT_METHOD);

PreferenceGroup textCategory = (PreferenceGroup) findPreference("text_category");

int N = (mInputMethodProperties == null ? 0 : mInputMethodProperties

.size());

for (int i = 0; i < N; ++i) {

InputMethodInfo property = mInputMethodProperties.get(i);

String prefKey = property.getId();

CharSequence label = property.loadLabel(getPackageManager());

boolean systemIME = isSystemIme(property);

// Add a check box.

// Don't show the toggle if it's the only keyboard in the system, or it's a system IME.

if (mHaveHardKeyboard || (N > 1 && !systemIME)) {

CheckBoxPreference chkbxPref = new CheckBoxPreference(this);

chkbxPref.setKey(prefKey);

chkbxPref.setTitle(label);

textCategory.addPreference(chkbxPref);

mCheckboxes.add(chkbxPref);

}

// If setting activity is available, add a setting screen entry.

if (null != property.getSettingsActivity()) {

PreferenceScreen prefScreen = new PreferenceScreen(this, null);

String settingsActivity = property.getSettingsActivity();

if (settingsActivity.lastIndexOf("/") < 0) {

settingsActivity = property.getPackageName() + "/" + settingsActivity;

}

prefScreen.setKey(settingsActivity);

prefScreen.setTitle(label);

if (N == 1) {

prefScreen.setSummary(getString(R.string.onscreen_keyboard_settings_summary));

} else {

CharSequence settingsLabel = getResources().getString(

R.string.input_methods_settings_label_format, label);

prefScreen.setSummary(settingsLabel);

}

textCategory.addPreference(prefScreen);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值