显示具有按钮点击的内容

时间:2016-04-13 18:52:33

标签: java android

我有十个按钮,0-9,当按下一个按钮时,我想将其值显示在TextView中。所以初始显示如下:

0.00

如果我按下2按钮,它应该显示在TextView上,如下所示:

0.02

现在,如果按下5,则新值应为:

0.25

等等。我从来没有做过这样的事情,所以我不确定从哪里开始。所以我的问题是,实现这样的事情的最佳方法是什么?

编辑:我知道如何在按下按钮时显示内容,但是,当按下新按钮进入新位置时,我不确定如何转换每个数字。

1 个答案:

答案 0 :(得分:1)

使用您正在显示的值存储一个int,并在输入数字时将该值乘以10并添加新数字。

类似的东西:

public void updateValue(int buttonPressed){
    currentValue = (currentValue*10) + buttonPressed;
}

然后您要更新TextView,确保以合适的方式格式化字符串:

    public String formatNum(){
    String valueAsString = Integer.toString(currentValue); 
    while(valueAsString.length()<3){
        valueAsString = '0' + valueAsString; 
    }
    char[] stringBuilding = new char[valueAsString.length()+(((valueAsString.length())-2)/3)+1];
    int valueAsStringPtr = valueAsString.length()-1; 
    int stringBuildingPtr = stringBuilding.length-1;
    while(stringBuildingPtr>=0){
        if(stringBuildingPtr==stringBuilding.length-3){
            stringBuilding[stringBuildingPtr--] = '.'; 
        } else if((stringBuilding.length-stringBuildingPtr-3)%4==0){
            stringBuilding[stringBuildingPtr--] = ','; 
        } else { 
            stringBuilding[stringBuildingPtr--] = valueAsString.charAt(valueAsStringPtr--);
        }
    }
    String returnVal = String.copyValueOf(stringBuilding);  
    return returnVal; 
}

所有这些假设你有一个整数字段currentValue。

还要尝试在工作线程上做到这一点,以避免延迟用户界面,它不应该花费太长时间,但仍然是一个好主意。

注意:对于任何想知道为什么我选择使用in而不是float / double的人是因为我们将引入错误显示二进制表示作为小数。