android设备获取ime标识,android-imeOptions,imeActionId和imeActionLab的行为

如果某人正在为Android设计自定义键盘,并且Enter键的标签有问题,则应执行以下操作。 在Android自定义键盘的示例中,SoftKeyboard.java中具有以下方法:

@Override

public void onStartInput(EditorInfo attribute, boolean restarting)

{

super.onStartInput(attribute, restarting);

.

. // the implementation

.

mCurKeyboard.setImeOptions(getResources(), attribute.imeOptions);

}

将最后一行更改为以下行:

mCurKeyboard.setImeOptions(getResources(), attribute);

现在在LatinKeyboard.java中,像下面这样更改setImeOptions方法:

void setImeOptions(Resources res, EditorInfo ei)

{

if (mEnterKey == null)

{

return;

}

switch (ei.imeOptions & (EditorInfo.IME_MASK_ACTION | EditorInfo.IME_FLAG_NO_ENTER_ACTION))

{

case EditorInfo.IME_ACTION_SEND:

mEnterKey.iconPreview = null;

mEnterKey.icon = null;

mEnterKey.label = res.getText(R.string.label_send_key);

break;

case EditorInfo.IME_ACTION_GO:

mEnterKey.iconPreview = null;

mEnterKey.icon = null;

mEnterKey.label = res.getText(R.string.label_go_key);

break;

case EditorInfo.IME_ACTION_NEXT:

mEnterKey.iconPreview = null;

mEnterKey.icon = null;

mEnterKey.label = res.getText(R.string.label_next_key);

break;

case EditorInfo.IME_ACTION_SEARCH:

mEnterKey.icon = res.getDrawable(R.drawable.sym_keyboard_search);

mEnterKey.label = null;

break;

default:

mEnterKey.iconPreview = null;

mEnterKey.label = res.getText(R.string.label_enter_key);

mEnterKey.icon = null;

break;

}

if (ei.actionLabel != null)

{

mEnterKey.iconPreview = null;

mEnterKey.icon = null;

mEnterKey.label = ei.actionLabel;

}

}

现在,您的自定义键盘会根据imeActionLabel的xml文件中定义的内容显示正确的标签。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值