2011-07-02 12 views
24

Możemy ustawić edytowalną właściwość EditText w układzie XML, ale nie programowo, ale nie ma metody setEditable()!Jak ustawić programowo edycję true/false EditText w systemie Android?

Jeśli EditText nie jest Włączone [przez setEnabled(false)] Nadal edycji!

+1

EditText.setEnabled (false); jeśli to ustawisz, editekst zostanie wyłączony. 100% – RobinHood

+0

Jak to możliwe, sprawdziłem, to wyłącza edittext. – RobinHood

+0

Tak, może być wyłączony, ale nie możemy skopiować wartości tego editekstu używając tego. –

Odpowiedz

35

To może pomóc:

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

Spróbuj to działa dobrze dla mnie ..

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

spróbować,

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

editText.setKeyListener(null); 

Współpracuje ...

3

nadzieja ta pomaga się:

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

Przynieś KeyListener wartość EditText przez editText.getKeyListener() i sklepu w KeyListener typu zmiennej, która będzie zawierać edytowalnych wartości nieruchomości:

KeyListener variable; 
variable = editText.getKeyListener(); 

Ustawia właściwość Edytowalny z EditText na fałsz jako:

edittext.setKeyListener(null); 

Teraz ustaw edycji własność EditText true jako:

editText.setKeyListener(variable); 

Uwaga: W XML domyślny edycji własność EditText powinny być prawdziwe.

+0

wow, to Prace!! – Kharda

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

Podaj dodatkowe szczegóły, dlaczego to rozwiąże problem. –

1

Po tematem edycji tekstu zostanie usunięta, nie pozwoli na wpisanie nawet jeśli ustawić go ponownie aktywowana.

Oto sposób wokół niego

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

Ustawienie to prawda w setFocusableInTouchMode() wydaje rade.

2

Jak to zrobić programowo:

Aby umożliwić korzystanie EditText:

et.setEnabled(true); 

aby wyłączyć stosowanie EditText:

et.setEnabled(false); 
0

Od setEditable(false) jest przestarzała, użyj textView.setKeyListener(null); aby EditText nie- możliwe do kliknięcia.

0

łatwy i bezpieczny sposób:

editText.clearFocus(); 
editText.setFocusable(false); 
Powiązane problemy