android 输入框 实时计算剩余的输入字符数(addTextChangedListener)

来源:互联网 发布:好的java培训机构 编辑:程序博客网 时间:2024/05/18 02:49

照例先上传效果图:


    1  布局文件很简单

[java] view plain copy
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.      >  
  6.   
  7.     <EditText  
  8.         android:id="@+id/editText"  
  9.         android:layout_width="fill_parent"  
  10.         android:layout_height="150dp"  
  11.          />  
  12.   
  13.     <TextView  
  14.         android:id="@+id/textView_show"   
  15.         android:layout_width="fill_parent"  
  16.         android:layout_height="wrap_content"  
  17.         android:text="您还可以输入"  
  18.         />  
  19.       
  20. </RelativeLayout>  

2  Activity 代码

 

[java] view plain copy
  1. 定义变量  
  2.         private EditText et;  
  3.     private TextView tv;  
  4.     int MAX_LENGTH = 500;                   //最大输入字符数500  
  5.     int Rest_Length = MAX_LENGTH;  
  6.   
  7. oncreate中添加如下代码:  
  8.   
  9.         et = (EditText) findViewById(R.id.editText);  
  10.         tv = (TextView) findViewById(R.id.textView_show);  
  11.           
  12.         tv.setText(Html.fromHtml("您还可以输入:"+"<font color=\"red\">"+500+"/500"+"</font>"));  
  13.         et.addTextChangedListener(new TextWatcher() {  
  14.               
  15.             @Override  
  16.             public void onTextChanged(CharSequence s, int start, int before, int count) {  
  17.                 // TODO Auto-generated method stub  
  18.                 if(Rest_Length > 0){  
  19.                     Rest_Length = MAX_LENGTH - et.getText().length();  
  20.                 }  
  21.             }  
  22.               
  23.             @Override  
  24.             public void beforeTextChanged(CharSequence s, int start, int count,  
  25.                     int after) {  
  26.                 // TODO Auto-generated method stub  
  27.                 tv.setText(Html.fromHtml("您还可以输入:"+"<font color=\"red\">"+Rest_Length+"/500"+"</font>"));  
  28.             }  
  29.               
  30.             @Override  
  31.             public void afterTextChanged(Editable s) {  
  32.                 // TODO Auto-generated method stub  
  33.                 tv.setText(Html.fromHtml("您还可以输入:"+"<font color=\"red\">"+Rest_Length+"/500"+"</font>"));  
  34.             }  
  35.         });  

0 0