bu benim uygulamam (biraz uzun ama benim için faydalı!): Bu kodla EditView Salt Okunur veya Normal yapabilirsiniz. salt okunur durumda bile metin kullanıcı tarafından kopyalanabilir. normal bir EditText'ten farklı görünmesi için arka planı değiştirebilirsiniz.
public static TextWatcher setReadOnly(final EditText edt, final boolean readOnlyState, TextWatcher remove) {
edt.setCursorVisible(!readOnlyState);
TextWatcher tw = null;
final String text = edt.getText().toString();
if (readOnlyState) {
tw = new TextWatcher();
@Override
public void afterTextChanged(Editable s) {
}
@Override
//saving the text before change
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
// and replace it with content if it is about to change
public void onTextChanged(CharSequence s, int start,int before, int count) {
edt.removeTextChangedListener(this);
edt.setText(text);
edt.addTextChangedListener(this);
}
};
edt.addTextChangedListener(tw);
return tw;
} else {
edt.removeTextChangedListener(remove);
return remove;
}
}
bu kodun yararı, EditText'in normal EditText olarak görüntülenmesi, ancak içeriğin değiştirilememesidir. Dönüş değeri, salt okunur durumdan normale dönebilmek için değişken olarak tutulmalıdır.
EditText'i salt okunur yapmak için şu şekilde koyun:
TextWatcher tw = setReadOnly(editText, true, null);
ve normal yapmak için önceki ifadeden tw kullanın:
setReadOnly(editText, false, tw);