Android-ime选项的程序化更改

Android-ime选项的程序化更改,android,Android,我有两个EditText txtPassword,基于radiobutton更改事件的txtMail,我只是隐藏并显示txtPassword字段 我只想用porgramatic更改ImeOptions,因为我编写了以下代码 txtPassword.setImeOptions(EditorInfo.IME\u ACTION\u DONE); txtEmail.setImeOptions(EditorInfo.IME\u ACTION\u NEXT) 但这是行不通的。当我观察软键盘时,这显示我在tx

我有两个EditText txtPassword,基于radiobutton更改事件的txtMail,我只是隐藏并显示txtPassword字段 我只想用porgramatic更改ImeOptions,因为我编写了以下代码
txtPassword.setImeOptions(EditorInfo.IME\u ACTION\u DONE);
txtEmail.setImeOptions(EditorInfo.IME\u ACTION\u NEXT)
但这是行不通的。当我观察软键盘时,这显示我在txtEmail中完成的操作(只是因为在更改收音机之前,只有txtEmail可见,所以自动完成显示)
但在手动聚焦于密码字段之后,如果我观察到带有电子邮件字段的软键盘,它会自动更改为下一个选项。我只想知道,如果一个txtmail比它的have-done-imeOptions可见,如果txtPassword、txtmail都比txtmail-have-imeOptions-next可见,并且在txtPassword中显示done-imeOptions。提前谢谢

编辑:

radiologin.setOnCheckedChangeListener(新的OnCheckedChangeListener(){
检查更改后的公共无效(RadioGroup组,int checkedId){
//checkedId是选中的单选按钮
if(checkedId==R.id.radioWithoutPassword){
txtPassword.setVisibility(View.GONE);
txtEmail.setBackgroundDrawable(getResources().getDrawable(R.drawable.both_corner));
txtEmail.setImeOptions(EditorInfo.IME\u ACTION\u DONE);
}
其他的
{
txtEmail.setImeOptions(EditorInfo.IME\u ACTION\u NEXT);
txtPassword.setImeOptions(EditorInfo.IME\u ACTION\u DONE);
txtPassword.setVisibility(View.VISIBLE);
txtEmail.setBackgroundDrawable(getResources().getDrawable(R.drawable.top_corner));
}
}
});

试试这个

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\u ACTION\u DONE)总是。

我也有同样的问题。与我一起工作的是添加了
android:singleLine=“true”
,我没有提到任何imeOptions或next focus值。我得到了预期的结果。在first editText中,键盘显示“下一步”,如果另一个editText可见,则显示“完成”。-p

谢谢,但我清楚地提到,我已经完成了此任务,但不起作用。如果密码字段不可见,您如何关注它?可能重复的可能重复的 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)); } } });

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);
            }
        }
    });