閱讀511 返回首頁    go 阿裏雲 go 技術社區[雲棲]


androidEditText不可編輯的問題

如何在java代碼中控製EditText不可編輯呢,因為EditText沒有setEditable這樣的方法,這個問題壇子裏已經有很多高手解決了,使用 InputFilter

具體如下:

 

Java代碼  收藏代碼
  1. 你的EditText.setFilters(new InputFilter[] {  
  2.             new InputFilter() {  
  3.                 public CharSequence filter(CharSequence source, int start,  
  4.                         int end, Spanned dest, int dstart, int dend) {  
  5.                     return source.length() < 1 ? dest.subSequence(dstart, dend) : "";  
  6.                 }  
  7.             }  
  8.         });  

  (申明下,這個我是在壇子中看到的,本人測試有效) 這樣做就可以在java代碼中動態設置EditText的編輯狀態了,但這個無法解決用戶體驗的問題,軟鍵盤依然會打開,但無法輸入,但可以選擇內容。


通過這樣方式試試吧,自定義一個類繼承EditText

Java代碼  收藏代碼
  1. package custom.widget;  
  2.   
  3. import android.content.Context;  
  4. import android.util.AttributeSet;  
  5. import android.view.MotionEvent;  
  6. import android.widget.EditText;  
  7.   
  8. public class CustomEditText extends EditText {  
  9.     public CustomEditText(Context context,AttributeSet attrs) {  
  10.         super(context,attrs);  
  11.     }  
  12.       
  13.     @Override  
  14.     public boolean onTouchEvent(MotionEvent event) {  
  15.         // TODO Auto-generated method stub  
  16.         return true;  
  17.     }     
  18. }  
  19.   
  20. //然後在頁麵布局文件使用自定義的EditText  
  21. <custom.widget.CustomEditText  
  22.          android:layout_width="fill_parent"  
  23.          android:layout_height="wrap_content"  
  24.     />  

最後更新:2017-04-04 07:03:42

  上一篇:go SQL語句中的case when語法以及Oracle中的類似方法
  下一篇:go STL之一:字符串用法詳解