1. 程式人生 > >EditText中過濾掉回車等

EditText中過濾掉回車等

只需要在為EditText新增一個過濾器就夠了。

程式碼如下:

public class MainActivity extends AppCompatActivity {
    private EditText mEditText;

    public static String stringFilter(String str) throws PatternSyntaxException{
        String regEx = "[/\\:*?<>|\"\n\t]";
        Pattern p = Pattern.compile(regEx);
        Matcher m = p.matcher(str);
        return
m.replaceAll(""); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEditText= (EditText) findViewById(R.id.id_et); mEditText.addTextChangedListener(new TextWatcher() { @Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged
(Editable s) { } }); mEditText.addTextChangedListener(new TextWatcher() { private int cou = 0; int selectionEnd = 0; @Override public void onTextChanged(CharSequence s, int start, int before, int count) { cou = before + count; String editable = mEditText.getText().toString(); String str = stringFilter(editable); //過濾特殊字元 if (!editable.equals(str)) { mEditText.setText(str); } mEditText.setSelection(mEditText.length()); cou = mEditText.length(); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable s) { } }); } }