W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
在前面我們已經學過EditText控件了,本節(jié)來說下如何監(jiān)聽輸入框的內容變化! 這個再實際開發(fā)中非常實用,另外,附帶著說下如何實現EditText的密碼可見 與不可見!好了,開始本節(jié)內容!
由題可知,是基于監(jiān)聽的事件處理機制,好像前面的點擊事件是OnClickListener,文本內容 變化的監(jiān)聽器則是:TextWatcher,我們可以調用EditText.addTextChangedListener(mTextWatcher); 為EditText設置內容變化監(jiān)聽!
簡單說下TextWatcher,實現該類需實現三個方法:
public void beforeTextChanged(CharSequence s, int start,int count, int after);
public void onTextChanged(CharSequence s, int start, int before, int count);
public void afterTextChanged(Editable s);
依次會在下述情況中觸發(fā):
我們可以根據實際的需求重寫相關方法,一般重寫得較多的是第三個方法!
監(jiān)聽EditText內容變化的場合有很多: 限制字數輸入,限制輸入內容等等~
這里給大家實現一個簡單的自定義EditText,輸入內容后,有面會顯示一個叉叉的圓圈,用戶點擊后 可以清空文本框~,當然你也可以不自定義,直接為EditText添加TextWatcher然后設置下刪除按鈕~
實現效果圖:
MainActivity.java
package com.jay.demo.edittextdemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
private EditText edit_pawd;
private Button btnChange;
private boolean flag = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit_pawd = (EditText) findViewById(R.id.edit_pawd);
btnChange = (Button) findViewById(R.id.btnChange);
edit_pawd.setHorizontallyScrolling(true); //設置EditText不換行
btnChange.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(flag == true){
edit_pawd.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
flag = false;
btnChange.setText("密碼不可見");
}else{
edit_pawd.setTransformationMethod(PasswordTransformationMethod.getInstance());
flag = true;
btnChange.setText("密碼可見");
}
}
});
}
}
editborder.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 設置透明背景色 -->
<solid android:color="#FFFFFF" />
<!-- 設置一個白色邊框 -->
<stroke
android:width="1px"
android:color="#FFFFFF" />
<!-- 設置一下邊距,讓空間大一點 -->
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
</shape>
本節(jié)就到這里,謝謝~
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: