android无法在原始类型long上调用substring(int,int)

时间:2014-02-27 21:03:52

标签: android textview substring

我有textview,它会显示大数字,如果数字的位数大于5,我想让textview只显示带有这样的点的4位数(3544 ...)我尝试但是我得到了这个错误:< / p>

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));
 }

4 个答案:

答案 0 :(得分: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);
 }

希望它有所帮助!

答案 1 :(得分:0)

错误是“long”没有子串方法,小心原语,它们根本没有任何方法......

如果你想要子串,请这样做:

String theNumber = str.substring(0,4)+"...";
textView1.setText(theNumber);

但除此之外,你可能甚至不需要自己动手,看看

  TextView

的android:ellipsis =“end”属性

如果TextView的大小小于实际文本,它将为您做省略号。

问候!

答案 2 :(得分:0)

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

那应该给你你想要的数字。

答案 3 :(得分:0)

您正尝试在没有该方法的substring上进行Long方法调用。您可能打算改为str.substring(0, 0)