2013-07-06 88 views
2

我有两个EditText上txtPassword,txtEmail基于单选按钮更改事件我只是隐藏和显示txtPassword场 我只想porgrammatic改变ImeOptions为我写下面的代码 的Android imeOptions变化纲领性

txtPassword.setImeOptions(EditorInfo.IME_ACTION_DONE); 
txtEmail.setImeOptions(EditorInfo.IME_ACTION_NEXT);
,但是这是行不通的。当我观察软键盘时,这表明我在txtEmail中完成了操作(仅仅是因为在无线电改变之前,只有txtEmail可见,所以自动完成) 但是在密码字段中手动设置密码后,如果我观察带有电子邮件字段的软键盘,用下一个选项改变它。我只想如果一个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)); 
} 
} 
});

+0

可能的重复http://stackoverflow.com/questions/3459168/imeoptions-actionnext-programmatically-how-to-jump-to-下一个字段 –

+0

可能的重复http://stackoverflow.com/questions/2004344/how-do-i-handle-imeoptions-done-button-click –

回答

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);始终。

+0

谢谢,但我明确提到我已经完成了这项任务,但din't工作 –

+0

张贴您的代码plz。 –

+0

另外,如果密码字段是不可见的,你可以专注于它吗? –

0

我有同样的问题。与我一起工作的是添加android:singleLine="true",我提到任何ime选项或下一个焦点值。我得到了预期的结果。在第一个editText键盘显示下一个,如果另一个editText可见,否则显示完成:-p