EditText에서 값을 입력받을때 50byte이하로만 받게 해놓았습니다.
그래서 입력을 받아 50byte가 되면 더이상 입력은 되지 않습니다.
그런데 계속해서 키보드 자판을 누다보면 어김없이 java.lang.StackOverflowError 에러가 납니다
처리방법 부탁드립니다..
mContent=(EditText)findViewById(R.id.Txt_04);
mContent.setInputType(EditorInfo.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
TextWatcher watcher = new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(mContent.isFocusable())
{
try
{
byte[] bytetext = mContent.getText().toString().getBytes("KSC5601");
mByte.setText(Integer.toString(bytetext.length)+" Byte");
}catch(Exception ex){}
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
String after_text = s.toString();
try
{
byte[] getbyte = after_text.getBytes("KSC5601");
if(getbyte.length > 50)
{
s.delete(s.length()-2, s.length()-1); <=== 이 줄에서 에러
}
}catch (Exception e) {}
}
};
mContent.addTextChangedListener(watcher);
length를 10으로 한 후
s.delete(s.length()-2, s.length()-1); <=== 이 줄에서 에러
이 코드 밑에 s를 로그로 찍어봤더니
[s] s : ㅓㅐㅑㅕㅐ
[s] s : ㅓㅐㅑㅕㅓ
[s] s : ㅓㅐㅑㅕㅓ
[s] s : ㅓㅐㅑㅕㅛ
[s] s : ㅓㅐㅑㅕㅛ
[s] s : ㅓㅐㅑㅕㅛ
이런식으로 하나씩 늘어나다가 죽어버립니다 해결법좀 ㅠㅠ