2014-02-27 2 views
0

큰 숫자를 표시하는 textview가 있고 숫자의 수가 5보다 큰 경우이 점과 함께 textview에 4 자리 만 표시하도록하고 싶습니다 (3544 ...) 나는 시도하지만이 오류가있어 :android 기본 유형 long에 substring (int, int)을 호출 할 수 없습니다.

EditText EditNumber; 
long theNumber; 

String str = EditNumber.getText().toString(); 

theNumber = Long.parseLong(str); 

if(theNumber >5) 
{ 
theNumber = theNumber.substring(0,4)+"..."; // the error in this line. 
textView1.setText(Long.toString(theSide)); 
} 
else 
{ 

textView1.setText(Long.toString(theNumber)); 
} 
+0

왜 String을 길게 파싱하고 String으로 파싱하는지 알 수 없습니다. 그게 무슨 말이야? 당신이 사용할 수있는'substring' 메쏘드를 가진 객체 인 String으로 남겨 둡니다. – Micer

답변

1

Martin Cazares이 가리키는대로 long에는 하위 문자열이 없습니다. 이중 값 대신 문자열을 사용하십시오.

EditText EditNumber; 
long theNumber; 

String str = EditNumber.getText().toString(); 

if(str.length() > 4) // > 4 digits 
{ 
    textView1.setText(str.substring(0,4)+"..."); 
} 
else 
{ 

    textView1.setText(str); 
} 

희망 하시겠습니까?

+0

감사합니다 모두 :) – user3362312

0

오류는 다음과 같습니다 여기

원시적 형 long에

안드로이드 호출 할 수 없습니다 문자열 (INT, INT)는 내 코드입니다 "long"은 부분 문자열 메서드가 없으며, 프리미티브에주의해야하며, 메서드가 없습니다.

당신이 하위 문자열하려는 경우

이 같은 그것을 할 ... 모든 S :
String theNumber = str.substring(0,4)+"..."; 
textView1.setText(theNumber); 

그러나 그 이상, 당신도

android:ellipsis="end" property of the TextView

보고, 그것을 자기 할 필요가 없습니다 수

TextView의 크기가 실제 텍스트보다 작 으면 줄임표가 사용됩니다.

감사합니다.

+0

정수로 시도해 보면 같은 오류가 발생합니다.> – user3362312

+0

int/long/boolean/etc 어떤 원시적도 메소드가 없으며 부분 문자열도 아닙니다. 점프하기 전에 반드시 자바 책을 읽을 필요가 있습니다. 이런 종류의 문제를 피하기 위해 안드로이드 ... –

0
Long.toString(theNumber).substring(x,y); 

원하는 자릿수를 제공해야합니다.

0

해당 방법이없는 Long에서 substring 메서드 호출을 시도하고 있습니다. 대신 str.substring(0, 0)을 사용하려고했을 것입니다.

관련 문제