android的文本框輸入控件(EditText),有時需要設置控件為只讀,最簡單的方法就是在layout xml文件中設置EditText的android:editable屬性值為false即可,但是大部分時候我們需要在java代碼中動態設置EditTex的只讀性,而android里沒有提供對應的setEditable方法來設置EditText的只讀屬性,這時候可以通過以下方式變通實現:
- public static void setEditTextReadOnly(TextView view){
- view.setTextColor(R.color.read_only_color); //設置只讀時的文字顏色
- if (view instanceof android.widget.EditText){
- view.setCursorVisible(false); //設置輸入框中的光標不可見
- view.setFocusable(false); //無焦點
- view.setFocusableInTouchMode(false); //觸摸時也得不到焦點
- }
- }
讓文本框無法獲得焦點,文本框內光標也不顯示,以得到不可輸入的效果,跟web頁面中表單文本框的readOnly效果一致