Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> EditText監聽方法,實時的判斷輸入多少字符

EditText監聽方法,實時的判斷輸入多少字符

編輯:關於Android編程

最近在寫一個小項目,其中有一點用到了顯示EditText中輸入了多少個字符,像微博中顯示剩余多少字符的功能。在EditText提供了一個方法addTextChangedListener實現對輸入文本的監控。下邊是我自己寫的一個Demo。

代碼實現:

布局文件main.xml

[html] view plain copy
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:orientation="vertical" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" 
  > 
<TextView android:id="@+id/tv" 
  android:layout_width="fill_parent"  
  android:layout_height="wrap_content"  
  android:textColor="@android:color/white"  
  android:text="Please input the text:" 
  /> 
<EditText android:id="@+id/ET"  
  android:layout_width="match_parent"  
  android:layout_height="wrap_content" 
  /> 
</LinearLayout> 

Activity

[java] view plain copy
package com.damai.test; 
import android.app.Activity; 
import android.os.Bundle; 
import android.text.Editable; 
import android.text.TextWatcher; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 
public class TestActivity extends Activity { 
  private TextView mTextView; 
  private EditText mEditText; 
  @Override 
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    mTextView = (TextView)findViewById(R.id.tv); 
    mEditText = (EditText)findViewById(R.id.ET); 
    mEditText.addTextChangedListener(mTextWatcher); 
  } 
  TextWatcher mTextWatcher = new TextWatcher() { 
    private CharSequence temp; 
    private int editStart ; 
    private int editEnd ; 
    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 
      // TODO Auto-generated method stub 
       temp = s; 
    } 
    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, 
        int after) { 
      // TODO Auto-generated method stub 
//     mTextView.setText(s);//將輸入的內容實時顯示 
    } 
    @Override 
    public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 
      editStart = mEditText.getSelectionStart(); 
      editEnd = mEditText.getSelectionEnd(); 
      mTextView.setText("您輸入了" + temp.length() + "個字符"); 
      if (temp.length() > 10) { 
        Toast.makeText(TestActivity.this, 
            "你輸入的字數已經超過了限制!", Toast.LENGTH_SHORT) 
            .show(); 
        s.delete(editStart-1, editEnd); 
        int tempSelection = editStart; 
        mEditText.setText(s); 
        mEditText.setSelection(tempSelection); 
      } 
    } 
  }; 
} 

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持本站!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved