前言:
在Android開發中EditText的使用頻率還是挺高的,比如登錄界面輸入密碼驗證碼等,有的時候要求我們要在輸入號碼后顯示是哪家公司的,比如中國移動,中國聯通,這是就會用到EditText監聽器
正文:
在xml文件中:
1 <EditText 2 android:layout_width="wrap_content" 3 android:layout_height="wrap_content" 4 android:hint="輸入號碼" 5 android:id="@+id/input1"/>
在Java文件中
使用addTextChangedListener方法和匿名內部類TextWatcher來添加EditText監聽器,在這個監聽器中我們要重寫三個方法分別為
1 public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 2 public void onTextChanged(CharSequence s, int start, int before, int count) {} 3 public void afterTextChanged(Editable s) {}
beforeTextChanged方法中
s:改變之前的文本
start:改變之前的文本數
count:被改變原有內容的數量
after:表示改變后新的內容的數量
onTextChanged方法中
s:為改變了的文本,如本來是12,我在輸入3,此時s為123
count:表示新增的數量
before:被改變的數量
start:表示輸入之前的數量
afterTextChanged方法中
s:為輸入之后的文本
1 import android.support.v7.app.AppCompatActivity; 2 import android.os.Bundle; 3 import android.text.Editable; 4 import android.text.TextWatcher; 5 import android.text.method.HideReturnsTransformationMethod; 6 import android.text.method.PasswordTransformationMethod; 7 import android.util.Log; 8 import android.widget.CheckBox; 9 import android.widget.CompoundButton; 10 import android.widget.EditText; 11 import android.widget.RadioButton; 12 import android.widget.RadioGroup; 13 import android.widget.Toast; 14 15 public class MainActivity extends AppCompatActivity { 16 private CheckBox checkbox; 17 private EditText edittext; 18 @Override 19 protected void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 setContentView(R.layout.activity_main); 22 checkbox=(CheckBox)findViewById(R.id.checkbox); 23 edittext=(EditText)findViewById(R.id.input1); 24 edittext.addTextChangedListener(new TextWatcher() { 25 @Override 26 public void beforeTextChanged(CharSequence s, int start, int count, int after) { 27 28 } 29 30 @Override 31 public void onTextChanged(CharSequence s, int start, int before, int count) { 32 33 } 34 35 @Override 36 public void afterTextChanged(Editable s) { 37 if (edittext.getText().length() == 11) { 38 Toast.makeText(MainActivity.this, "中國移動", Toast.LENGTH_LONG).show(); 39 } 40 41 } 42 }); 43 44 45 } 46 }
上面代碼是當輸入11個數字時,提示中國移動