2013-07-06 27 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