edittext監聽事件的使用了。對於其監聽事件一般有兩種:
一種爲:setOnEditorActionListener,另一種爲:addTextChangedListener
setOnEditorActionListener對於控件按回車鍵的時候的監聽。
addTextChangedListener對於控件實時的監聽。
setOnEditorActionListener
etxtview.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
Toast.makeText(getApplicationContext(),"輸入的內容是:"+et_on.getText().toString(),Toast.LENGTH_LONG).show();
return false;
}
});
注意該方法需要通過回車鍵纔會有監聽返回,當這裏返回的爲false時可以使用返回鍵輸入下一行當返回true時則直接顯示輸入的內容
addTextChangedListener
etxtview.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
//輸入前
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
//輸入中
}
@Override
public void afterTextChanged(Editable editable) {
//輸入後editable.toString().trim()//獲取內容
}
});
}
第一種就是監聽EditText的setOnEditorActionListener方法,然後把回車鍵禁止,但是在虛擬鍵盤中依然會顯示enter鍵:
private void setListener(){
editText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
return (event.getKeyCode()==KeyEvent.KEYCODE_ENTER);
}
});
}
第二種方法是直接在EditText的xml文件中通過配置android:singleLine="true"把虛擬鍵盤上的回車鍵去掉不讓他顯示。爲了保險起見再加一條只能輸入單行
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="登錄賬戶"
android:maxLines="1"
android:singleLine="true"
/>