EditText 이모 티 콘 입력 금지
예전 에 커 뮤 니 티 프로젝트 를 할 때 IM 의 수요 가 있 었 는데 그 중에서 사용자 정의 표정 을 사 용 했 습 니 다. 그 때 기본 적 인 방법 은 string. xml 에서 StringArray 표정 의미 배열 을 정의 하 는 것 이 었 습 니 다. 그 중에서 모든 의 미 는 하나의 표정 에 대응 하 는 것 입 니 다.EditText 를 입력 할 때 표정 은 정규 표현 식 에 따라 해당 하 는 문 자 를 얻 은 다음 이 의미 에 따라 drawable 자원 에서 해당 하 는 drawable 표정 파일 을 가 져 옵 니 다.마지막 으로 이 drawable 을 EditText 입력 내용 뒤에 연결 하고 invalidate () 방법 을 사용 하여 다시 그리 도록 합 니 다.
본문
앞에서 말 했 듯 이 EditText 에 사용자 정의 표정 을 입력 하 는 것 은 이미 표정 을 알 고 있 는 문자 형식 입 니 다. 만약 지금 사용자 정의 표정 을 입력 하지 않 고 제3자 입력 법 이 가지 고 있 는 표정 이 라면 어떻게 입력 을 금지 해 야 합 니까?
기본 적 인 사 고 는 위 와 같 습 니 다. 정규 표현 식 에 따라 표정 을 걸 러 냅 니 다.이렇게 하면 그 문제 의 관건 은 바로 정규 표현 식 에 있다. 아래 에 내 가 인터넷 에서 찾 은 정규 표현 을 붙인다.
private static final String exPressionReg = "^([a-z]|[A-Z]|[0-9]|[\u2E80-\u9FFF]){3,}|
@(?:\w?\.)+\w?
|[.net]{4}|[.org]{4}|[http://]{7}|[ftp://]{6}$";
다음은 TextWatcher 필터 감청 기 를 작성 하 는 것 입 니 다.기본 사고방식: 1. 표정 을 입력 하기 전에 EditText 가 입력 한 문 자 를 저장 합 니 다.2. 표정 을 입력 한 후 정규 표현 식 을 이용 하여 방금 입력 한 동 동 을 일치 시 킵 니 다. 표정 이 라면 이전에 입력 한 문 자 를 캡 처 하고 View 를 다시 그립 니 다.생각 이 있 으 면 다음 코드 의 실현 을 보 세 요.
mEditRoom.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
if(!resetText){
// , ( )
cursorPos = mEditRoom.getSelectionEnd();
temp = s.toString();
}
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(!resetText){
if(count >= 2){
CharSequence content = s.subSequence(cursorPos,cursorPos+count);
boolean isExpression = PatternUtils.checkExpression(content.toString());
if(isExpression){
resetText = true;
mEditRoom.setText(temp);
mEditRoom.setSelection(temp.length());
mEditRoom.invalidate();
CommonToast.showToast(mContext,getString(R.string.device_location_cannot_input_expression));
}
}
}else {
resetText = false;
}
}
@Override
public void afterTextChanged(Editable s) {
}
})}
이상 은 EditText 가 표정 입력 을 금지 하 는 모든 것 이 이 루어 졌 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
EditText 이모 티 콘 입력 금지예전 에 커 뮤 니 티 프로젝트 를 할 때 IM 의 수요 가 있 었 는데 그 중에서 사용자 정의 표정 을 사 용 했 습 니 다. xml 에서 StringArray 표정 의미 배열 을 정의 하 는 것 이 었 습 니 다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.