是否可以从Android应用程序的软键盘中完全禁用设置键?
我要禁用的按钮是图像左下角的第二个按钮:
现在我有这样的事情:
userName = (EditText) findViewById(R.id.txt_name);
password = (EditText) findViewById(R.id.password);
userName.setOnKeyListener(this);
password.setOnKeyListener(this);
public boolean onKey(View v, int keyCode, KeyEvent event) {
switch (v.getId()) {
case R.id.txt_name:
if ((event.getAction() == KeyEvent.ACTION_DOWN)
&& (keyCode == KeyEvent.KEYCODE_SETTINGS)) {
mUserName = userName.getText().toString();
if (mUserName.equals("")) {
Toast.makeText(this, "Enter user name...",
Toast.LENGTH_SHORT).show();
} else
password.requestFocus();
break
}
}
遗憾的是,此代码无法检测到设置密钥。
答案 0 :(得分:2)
是否可以从Android应用程序的软键盘中完全禁用设置键?
您可以编写自己的输入法编辑器(或修改现有的编码),但没有此按钮。将此作为默认键盘放在自定义ROM中可以实现您的目标。
然而,SDK应用程序无法禁用此按钮或以其他方式控制输入法编辑器的行为。
答案 1 :(得分:0)
尝试onKeyDown
代替onKey
。在您的代码中例如:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (v.getId()) {
case R.id.txt_name:
if (keyCode == KeyEvent.KEYCODE_SETTINGS) {
mUserName = userName.getText().toString();
if (mUserName.equals("")) {
Toast.makeText(this, "Enter user name...",
Toast.LENGTH_SHORT).show();
} else
password.requestFocus();
break
}
}