gpt4 book ai didi

android - 更改键盘上的按钮

转载 作者:行者123 更新时间:2023-11-30 03:57:11 25 4
gpt4 key购买 nike

我使用以下代码根据是否选中复选框在键盘上的完成按钮和下一步按钮之间切换:

private OnClickListener checkBoxListener = new OnClickListener(){
@Override
public void onClick(View v) {
CheckBox cb = (CheckBox) findViewById(R.id.checkbox_referralCode);
EditText referralCode = (EditText) findViewById(R.id.referralCode);
EditText phoneText = (EditText) findViewById(R.id.phoneText);

if(cb.isChecked()) {
referralCode.setVisibility(View.VISIBLE);
phoneText.setImeOptions(0x00000005);

}
else
referralCode.setVisibility(View.GONE);

}

};如果最初未选中该复选框,phoneText 的键盘将显示完成。第一次选中该复选框时,接下来会显示 phoneText 的键盘。这正是我想要的。但是,我面临的问题是,当用户先选中复选框后取消选中该复选框时,当我希望它显示完成时,键盘仍会显示。为了纠正这个问题,我在 else 语句中添加了以下行:

        phoneText.setImeOptions(0x00000006);

因此,我的新代码如下所示:

private OnClickListener checkBoxListener = new OnClickListener(){
@Override
public void onClick(View v) {
CheckBox cb = (CheckBox) findViewById(R.id.checkbox_referralCode);
EditText referralCode = (EditText) findViewById(R.id.referralCode);
EditText phoneText = (EditText) findViewById(R.id.phoneText);

if(cb.isChecked()) {
referralCode.setVisibility(View.VISIBLE);
phoneText.setImeOptions(0x00000005);

}
else {
referralCode.setVisibility(View.GONE);
phoneText.setImeOptions(0x00000006);
}

}

};

但是,现在 phoneText 的键盘只显示完成,即使该复选框是否被选中也是如此。我应该怎么做才能纠正这个问题?

最佳答案

取决于键盘。例如,我知道 Swype 只会在重新加载后检查 imeoptions。可以尝试的一件事是隐藏键盘并在此事件中重新打开它。

最后你会遇到很多麻烦。问题是 Android 不是一个键盘——它有一个允许键盘热插拔的框架,但 API 并不总是定义明确,键盘开发人员不得不猜测应该如何实现。我不认为在开发键盘的 2 年中,我曾经有一个应用程序试图在创建字段后更改它的 imeOptions。它可能以前从未做过,所以可能是框架甚至没有告诉键盘它们已经改变了。

关于android - 更改键盘上的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13159483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com