2013-07-06 3 views
2

У меня есть два EditText txtPassword, txtEmail на основе события изменения радиокнопки Я просто скрыть и показать txtPassword поля Я просто хочу, чтобы изменить ImeOptions с porgrammatic для этого я написал следующий код Android imeOptions Изменить Programmatic

txtPassword.setImeOptions(EditorInfo.IME_ACTION_DONE); 
txtEmail.setImeOptions(EditorInfo.IME_ACTION_NEXT);
, но это не работает. Когда я наблюдаю за мягкой клавиатурой, это показывает, что я сделал действие в txtEmail (только потому, что до изменения радио только txtEmail видна, так что автоматически появляется) , но после ручного фокуса в поле пароля и после этого, если я наблюдаю за мягкой клавиатурой с полем электронной почты, она автоматически изменил его с помощью следующих imeOptions. Я просто хочу, чтобы один txtEmail был видимым, чем imeOptions, и если txtPassword, txtEmail оба видны, чем txtEmail, ImeOptions next и в txtPassword он отображает imeOptions. Заранее спасибо.

Edit:

 
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- next-field –

+0

Возможный дубликат http://stackoverflow.com/questions/2004344/how-do-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

спасибо, но я ясно сказал, что я уже выполнил эту задачу, но не сделал работа –

+0

напишите свой код plz. –

+0

Также, если поле пароля невидимо, как вы можете сосредоточиться на нем? –

0

У меня была та же проблема. то, что со мной работало, добавляет android:singleLine="true", и я упоминаю любые imeOptions или следующие значения фокусировки. я получил ожидаемый результат. на первой клавиатуре editText будет отображаться следующая, если другой editText будет виден еще, что он показывает: --p

Смежные вопросы