2011-07-02 50 views
24

我們可以在XML佈局中設置EditText的可編輯屬性,但不是以編程方式,但沒有setEditable()方法!如何以編程方式在Android中設置可編輯的真/假EditText?

如果EditText沒有啓用 [由setEnabled(false)]它仍然編輯

+1

EditText.setEnabled(假);如果你設置了這個,edittext disable.100% – RobinHood

+0

如何可能,我選中了,它禁用了你的edittext。 – RobinHood

+0

是的,它可能會被禁用,但我們不能複製該edittext的值使用這個。 –

回答

35

這可能會幫助:

if (cbProhibitEditPW.isChecked()) { // disable editing password 
     editTextPassword.setFocusable(false); 
     editTextPassword.setFocusableInTouchMode(false); // user touches widget on phone with touch screen 
     editTextPassword.setClickable(false); // user navigates with wheel and selects widget 
     isProhibitEditPassword= true; 
} else { // enable editing of password 
     editTextPassword.setFocusable(true); 
     editTextPassword.setFocusableInTouchMode(true); 
     editTextPassword.setClickable(true); 
     isProhibitEditPassword= false; 
} 
1

試試這個,它正在罰款我..

EditText.setInputType(0); 
EditText.setFilters(new InputFilter[] {new InputFilter() 
{ 
@Override 
public CharSequence filter(CharSequence source, int start, 
          int end, Spanned dest, int dstart, int dend) 
{ 
return source.length() < 1 ? dest.subSequence(dstart, dend) : ""; 

} 
} 
}); 
1

試試這個,

EditText editText=(EditText)findViewById(R.id.editText1); 

editText.setKeyListener(null); 

它工作正常...

3

希望這一個可以幫助你:

edittext1.setKeyListener(null); 
edittext1.setCursorVisible(false); 
edittext1.setPressed(false); 
edittext1.setFocusable(false); 
8

的KeyListener類型的變量,其中將包含 可編輯的屬性值由editText.getKeyListener() 和存儲取的EditText的KeyListener值:

KeyListener variable; 
variable = editText.getKeyListener(); 

EditText的Editable屬性設置爲false,如下所示:

edittext.setKeyListener(null); 

現在設置的EditText可編輯屬性爲true:

editText.setKeyListener(variable); 

注:在XML的EditText默認編輯屬性應該是真實的。

+0

哇,它作品!! – Kharda

1
editText.setFocusable(false); 
editText.setClickable(false); 
4
editText.setInputType(InputType.TYPE_NULL); 
+1

請提供更多詳細信息,說明爲什麼這可以解決問題。 –

1

一旦編輯文本的焦點被刪除,它不會讓你即使類型如果將其設置爲再次可獲得焦點。

這裏是它周圍

if (someCondition) 
    editTextField.setFocusable(false); 
else 
    editTextField.setFocusableInTouchMode(true); 

的方式設置它setFocusableInTouchMode()真正似乎這樣的伎倆。

2

怎麼做編程:

要啓用的EditText使用:

et.setEnabled(true); 

禁用的EditText使用:

et.setEnabled(false); 
0

由於setEditable(false)已過時,使用textView.setKeyListener(null);使EDITTEXT非點擊。

0

一種簡單和安全的方法,包括:

editText.clearFocus(); 
editText.setFocusable(false); 
相關問題