1. 程式人生 > >android 輸入框 實時計算剩餘的輸入字元數(addTextChangedListener)

android 輸入框 實時計算剩餘的輸入字元數(addTextChangedListener)

照例先上傳效果圖:

    1  佈局檔案很簡單

  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.     <EditText  
  7.         android:id="@+id/editText"
  8.         android:layout_width="fill_parent"
  9.         android:layout_height="150dp"
  10.          />  
  11.     <TextView  
  12.         android:id="@+id/textView_show"
  13.         android:layout_width="fill_parent"
  14.         android:layout_height="wrap_content"
  15.         android:text="您還可以輸入"
  16.         />  
  17. </RelativeLayout>  

2  Activity 程式碼
  1. 定義變數  
  2.         private
     EditText et;  
  3.     private TextView tv;  
  4.     int MAX_LENGTH = 500;                   //最大輸入字元數500
  5.     int Rest_Length = MAX_LENGTH;  
  6. oncreate中新增如下程式碼:  
  7.         et = (EditText) findViewById(R.id.editText);  
  8.         tv = (TextView) findViewById(R.id.textView_show);  
  9.         tv.setText(Html.fromHtml("您還可以輸入:"
    +"<font color=\"red\">"+500+"/500"+"</font>"));  
  10.         et.addTextChangedListener(new TextWatcher() {  
  11.             @Override
  12.             publicvoid onTextChanged(CharSequence s, int start, int before, int count) {  
  13.                 // TODO Auto-generated method stub
  14.                 if(Rest_Length > 0){  
  15.                     Rest_Length = MAX_LENGTH - et.getText().length();  
  16.                 }  
  17.             }  
  18.             @Override
  19.             publicvoid beforeTextChanged(CharSequence s, int start, int count,  
  20.                     int after) {  
  21.                 // TODO Auto-generated method stub
  22.                 tv.setText(Html.fromHtml("您還可以輸入:"+"<font color=\"red\">"+Rest_Length+"/500"+"</font>"));  
  23.             }  
  24.             @Override
  25.             publicvoid afterTextChanged(Editable s) {  
  26.                 // TODO Auto-generated method stub
  27.                 tv.setText(Html.fromHtml("您還可以輸入:"+"<font color=\"red\">"+Rest_Length+"/500"+"</font>"));  
  28.             }  
  29.         });