我有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));
}
答案 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)
。