안드로이드에 커서 위치에 표정을 삽입하는 코드 상세 정보
이전에 쓴 Android 앱은 댓글에 이모티콘을 삽입할 때 버그가 존재하는데 EditText에서 지정한 커서에 이모티콘 문자열을 삽입할 수 없습니다. 매번 추가된 이모티콘 문자열은 문자 끝까지 갑니다.apk 원본을 분석해 보니 이모티콘 디스크의 onClick 응답 이벤트에서 이모티콘 문자열을 정확하게 처리하는 추가 방법이 없습니다. 여기에 EditText 지정 커서에 이모티콘 문자열을 삽입하는 방법을 기록합니다.
EditText 커서에 이모티콘 문자열을 삽입하는 방법
EditText 컨트롤에 이모티콘 문자열을 삽입하려면 먼저 EditText 컨트롤 객체를 가져와야 합니다. 샘플 원본은 다음과 같습니다.
EditText rEditText = (EditText) findViewById(R.id.r_edittext);
현재 EditText 컨트롤 객체를 가져옵니다. 다음 단계는 현재 EditText에 있는 문자열을 저장하는 것입니다. 샘플 원본은 다음과 같습니다.
String oriContent = rEditText.getText().toString();
다음은 커서의 위치를 가져오는 것입니다.EditText 컨트롤에서 제공하는 getSelectionStart() 메서드를 사용합니다.그러나 여기서 주의해야 할 것은 EditText에 커서가 없을 때 이 방법을 사용하면 -1로 되돌아간다. 이것은 우리가 원하는 커서 위치가 아니기 때문에 0과 비교하는 것이 가장 좋다. 예시 원본은 다음과 같다.
int index = Math.max(rEditText.getSelectionStart(), 0);
나머지는 주어진 커서 위치에 표정 문자열을 삽입한 다음 새로운 커서 위치를 설정하는 것이다.전체 삽입 표정 샘플 원본은 다음과 같습니다.
private void insertEmotion(String insertEmotion) {
String oriContent = rEditText.getText().toString();
int index = Math.max(rEditText.getSelectionStart(), 0);
StringBuilder sBuilder = new StringBuilder(oriContent);
sBuilder.insert(index, insertEmotion);
rEditText.setText(sBuilder.toString());
rEditText.setSelection(index + insertEmotion.length());
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
VisualStudio에서 Ant를 사용하여 Native APK를 만듭니다.※2019/11/13 Gradle판의 기사도 올랐습니다. 자세한 내용은 을 참조하십시오. CEDEC2019의 " "이라는 세션에서 VisualStudio에서도 Gradle을 사용한 Native 앱을 만들 수 있다는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.