나는 입력하는 동안 EditText의 텍스트를 변경하려면 TextWatcher를 사용하고 있습니다. 문자열은 새/대체 된 텍스트를 이전 텍스트에 추가 한 다음 표시합니다. 새로운/대체 된 텍스트 만 표시하려고합니다. "이전"텍스트의 색인을 유지하고 대체 된 새 텍스트 만 표시하려고합니다. 그것이 올바른 방법인지 확실하지 않습니다. 잘못된 길을 가고있는 것일 수도 있습니다. 이것이 저에게 예외적 인 예외를 넘겨주는 이유입니다. 아무도 도와 줄 수 없습니까? 예를 들어, a를 입력하면 다음에 b를 입력 할 때 텍스트 상자에 표시된 텍스트가 aab이지 ab가 아니므로이 중복성을 제거하려고합니다. 다음은 내 코드입니다 : 그리고 한 줄의 문자 제한의 예를 들어 10을 초과하는 경우도 어떻게 새 줄 문자를 삽입 할 수 있습니다, 10 개 문자 후 문자는 내가이 코드를 시도 havent 한바운드 예외 TextWatcher에서
tw = new TextWatcher()
{
public void beforeTextChanged(CharSequence s,int start,int count, int after){}
public void onTextChanged(CharSequence s, int start, int before, int count)
{
txtData.removeTextChangedListener(tw);
txtData.setText(s.toString().replace("\n", "*"))
txtData.addTextChangedListener(tw);
}
};
txtData.addTextChangedListener(tw);
달성하고자하는 것은 무엇입니까? atm 당신이 쓰는 모든 편지는 개별적으로 처리됩니다. 나는 당신이 textview에서 현재 문자를 처리하려는 가정합니다. 그것은 s 일 것입니다. txtData에 getText()를 호출 할 필요가 없습니다. texttatcher가 첨부 된 edittext입니다. –
Daniel에게 답장을 보내 주셔서 감사합니다. 귀하의 제안에 따라 코드를 변경했지만 문제는 남아 있습니다. 나는 여분의/반복 된 문자를 제거하고 n 개의 문자 다음에 새로운 행을 삽입하려고합니다. 예를 들어 문자 a를 입력하면 편집 문구에 표시되지만 다음 문자를 입력하려고하면 다음/새 텍스트에 이전 텍스트가 추가되고 aab 다음 aabaabc 다음 aabaabaabc가 추가됩니다. edittext에 abc를 표시하고 싶습니다. 어쨌든 중복 된 텍스트를 제거 할 수 있습니까? edittext에 10 자 뒤에 \ n say를 삽입 하시겠습니까? – user2387107