EditText監聽器------實時監聽


前言:

  在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個數字時,提示中國移動

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM