4

我有两个基于单选按钮更改事件的 EditText txtPassword,txtEmail 我只是隐藏和显示 txtPassword 字段我只想用 porgrammatic 更改 ImeOptions 我写了以下代码

txtPassword.setImeOptions(EditorInfo.IME_ACTION_DONE);
txtEmail.setImeOptions(EditorInfo.IME_ACTION_NEXT); 
但这不起作用。当我观察软键盘时,这表明我在 txtEmail 中完成了操作(只是因为在收音机更改之前只有 txtEmail 可见,所以自动完成出现)但是在手动关注密码字段之后,如果我观察到带有电子邮件字段的软键盘,它会自动更改它与下一个 imeOptions。我只想要一个 txtEmail 是否可见而不是 imeOptions 并且如果 txtPassword、txtEmail 两者都可见,那么 txtEmail 下一个有 ImeOptions 并且在 txtPassword 中它显示了 imeOptions。提前致谢。

编辑:

radiologin.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(RadioGroup group,int checkedId) {
// checkedId is the RadioButton selected
if (checkedId == R.id.radioWithoutPassword) {
txtPassword.setVisibility(View.GONE);
txtEmail.setBackgroundDrawable(getResources().getDrawable(R.drawable.both_corner));
txtEmail.setImeOptions(EditorInfo.IME_ACTION_DONE);
}
else
{
txtEmail.setImeOptions(EditorInfo.IME_ACTION_NEXT);
txtPassword.setImeOptions(EditorInfo.IME_ACTION_DONE);
txtPassword.setVisibility(View.VISIBLE);
txtEmail.setBackgroundDrawable(getResources().getDrawable(R.drawable.top_corner));
}
}
});

4

2 回答 2

1

尝试这个,

final EditText passwordEditText = new EditText(this);
    final EditText emailEditText = new EditText(this);
    RadioButton button = new RadioButton(this);
    button.setOnCheckedChangeListener(new RadioButton.OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // TODO Auto-generated method stub
            if(isChecked){
                passwordEditText.setVisibility(View.INVISIBLE);
                emailEditText.setImeOptions(EditorInfo.IME_ACTION_DONE);
            }else{
                emailEditText.setImeOptions(EditorInfo.IME_ACTION_NEXT);
            }
        }
    });

passwordEditText.setImeOptions(EditorInfo.IME_ACTION_DONE);始终设置。

于 2013-07-06T09:29:05.273 回答
0

我遇到过同样的问题。对我有用的是添加android:singleLine="true",我不会提到任何 imeOptions 或下一个焦点值。我得到了预期的结果。如果另一个editText可见,则在第一个editText键盘中显示下一个,否则显示完成:-p

于 2015-11-17T10:21:22.373 回答