2011-09-05 8 views
1

자바에서 안드로이드 응용 프로그램을 만들고 있어요. 근본적으로 문제가 있습니다 .. 문자열의 마지막 문자를 제거하는 버튼이 있습니다. 그리고이 버튼은 많이 사용되며 사용자가 문자열이 .. 응용 프로그램이 오류 메시지를 가져옵니다 및 종료 비어 그리고 내가 어떻게 든이 문제를 방지 할 동안 ..응용 프로그램이 작동을 멈췄습니다

이것은 OnClickListener를 현재 코드는 ..

back.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
       value = value.substring(0, value.length() - 1); 
       numbersArea.setText(value); 
     } 

어떤 생각을 버튼을 누르면됩니다 내가 어떻게 할거야 ?? 어제 밤에 모두 시도한 후에 아이디어가 나간 이후.

+0

(value! = null && value! = "") {value = value.substring (0, value.length() - 1); numbersArea.setText (value); } –

+0

문자열 사이의 동일성에 대한 testung은 equals가 아닌 == – njzk2

답변

1

는 리스너 다음과 같이하십시오 :

back.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

       if(!value.equals("") && value != null) { 
        value = value.substring(0, value.length() - 1); 
        numbersArea.setText(value); 
       } 
     } 

는 기본적으로 무엇을하는 일은 그것하지, 그것은 if 문에 입력하면 문자열이 비어 및 널 (null)의 차이가 있는지 확인합니다.

더 많은 의문이 있으면 알려주세요.

감사합니다.

+0

으로 끝내야합니다. Fantasitic help! 나는 진짜로 그것을 좋아한다. 전에 똑같은 것을 쓰다듬었지만 방금 썼다. value.equals ("") 아무것도 .. – Rakso

+0

TextUtils.isEmpty (value)는 비어 있음을 테스트하는 더 깨끗한 방법이다. 값이 null이거나 value.length == 0 인 경우 예제가 충돌합니다. – njzk2

3

substring하기 전에 확인하십시오 문자열의 길이는이 검사를하지 않으면, 어떤 점에서 문자열 길이가 0하고 substring()IndexOutOfBoundsException가 발생합니다> 0

if (!value.isEmpty()) { 
    value = value.substring(0, value.length() - 1); 
    numbersArea.setText(value); 
} 

입니다.

관련 문제