Android EditText部分特殊功能

阅读更多

 

 http://06peng.com/tb.php?t=79&extra=456de

1、给EditText加上文字选中功能,比如微博的插入话题功能。点击“插入话题”按钮的时候,“#请插入话题名称#”在两个#号中间的内容处于选中状态,用户一点击即消失。代码如下:

Java代码
        
  1. text.setText("#请插入话题名称#");  
  2.     
  3. Editable editable = text.getText();  
  4.     
  5. Selection.setSelection(editable, 1, editable.length() - 1);  

2、如果想默认进入一个Activity时,唯一的一个edittext先不要获得焦点。在EditText前面加上一个没有大小的Layout:

XML/HTML代码
        
  1. <LinearLayout  
  2.     
  3.     android:focusable="true" android:focusableInTouchMode="true"  
  4.     
  5.     android:layout_width="0px" android:layout_height="0px"/>  

3、输入文字的时候,如果想限制字数,并提示用户,可用以下方法:

Java代码
        
  1. text.addTextChangedListener(new TextWatcher() {  
  2.     
  3.               
  4.     
  5.             @Override  
  6.     
  7.             public void onTextChanged(CharSequence s, int start, int before, int count) {  
  8.     
  9.                  textCount = textCount + count - before;  
  10.     
  11.                  if (textCount <= 140) {  
  12.     
  13.                        writeWordDes.setText("可输入字数:" + (140 - textCount));  
  14.     
  15.                        writeWordDes.setTextColor(getResources().getColor(R.color.solid_black));  
  16.     
  17.                  } else {  
  18.     
  19.                      writeWordDes.setText("超出字数:" + (textCount - 140));  
  20.     
  21.                      writeWordDes.setTextColor(getResources().getColor(R.color.solid_red));  
  22.     
  23.                  }  
  24.     
  25.             }  
  26.     
  27.               
  28.     
  29.             @Override  
  30.     
  31.             public void beforeTextChanged(CharSequence s, int start, int count,  
  32.     
  33.                     int after) {  
  34.     
  35.                   
  36.     
  37.             }  
  38.     
  39.               
  40.     
  41.             @Override  
  42.     
  43.             public void afterTextChanged(Editable s) {  
  44.     
  45.                   
  46.     
  47.             }  
  48.     
  49.         });  
  50.     
  51.     }  

4、让EditText不可输入,比如超过一定字数后,不让用户再输入文字:

Java代码
        
  1. text.setFilters(new InputFilter[] {    
  2.     
  3.          new InputFilter() {    
  4.     
  5.                 public CharSequence filter(CharSequence source, int start,    
  6.     
  7.                         int end, Spanned dest, int dstart, int dend) {    
  8.     
  9.                     return source.length() < 1 ? dest.subSequence(dstart, dend) : "";    
  10.     
  11.                 }    
  12.     
  13.             }    
  14.     
  15.         });    

你可能感兴趣的:(Android EditText部分特殊功能)