Android-ime选项的程序化更改
我有两个EditText txtPassword,基于radiobutton更改事件的txtMail,我只是隐藏并显示txtPassword字段 我只想用porgramatic更改ImeOptions,因为我编写了以下代码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
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);
}
}
});