Java android studio中的点计算器

Java android studio中的点计算器,java,android,Java,Android,我一直在尝试在android studio中构建一个简单的计算器。一切都很好,但我有一个问题,当我运行计算器并按下点按钮时,它会在文本视图中显示“.”而不是“0” 另外,我需要检查单个数值中是否存在两个小数点 这是一张图片: 它显示“.” 我想: 如何更改此项??,这是我的代码: private int cont=0; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedI

我一直在尝试在android studio中构建一个简单的计算器。一切都很好,但我有一个问题,当我运行计算器并按下点按钮时,它会在文本视图中显示“.”而不是“0” 另外,我需要检查单个数值中是否存在两个小数点

这是一张图片:

它显示“.”

我想:

如何更改此项??,这是我的代码:

    private int cont=0;

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    display=(TextView)findViewById(R.id.display);
    text="";
}


    public void numero1(View view){ /*when i press a number, this method executes*/
    Button button = (Button) view;
    text += button.getText().toString();
    display.setText(text);
}

    public void dot(View view){ /*This is not finished*/
    display.setText{"0."}
    }
我正在考虑为点按钮创建另一个方法,但是当我按下另一个按钮时,文本值的内容消失了,如何解决这个问题?

试试这个

public void numero1(View view){ /*when i press a number, this method executes*/
Button button = (Button) view;
text += button.getText().toString();
if(text.substring(0,1).equals("."))
text="0"+text;    
display.setText(text);
}
这样试试

public void dot(View view){ /*This is not finished*/
               String str=display.getText().toString().trim();
                  if(str.length()>0){
                      display.seText(str+".")
                  }else{
                      display.setText("0.")
                  }
    }

使用字符串生成器并将输入的所有文本追加到现有字符串中。在显示之前,只需使用字符串生成器上的
toString()
方法。

创建一个表示要显示的字符序列的类,并处理传入字符

例如:

类显示{
布尔hasPoint=false;
串序列;
公开展览(){
mSequence=新的StringBuilder();
mSequence.append('0');
}
公共无效添加(字符pChar){
//避免多个浮点
如果(pChar=='。){
如果(hasPoint){
返回;
}否则{
hasPoint=true;
}
}
//避免多个起始零
如果(!hasPoint&&mSequence.charAt(0)='0'&&pChar='0'){
返回;
}
//向序列中添加字符
mSequence.append(pChar);
}
//以字符串形式返回序列
//整数得到尾随点
公共字符串toShow(){
如果(!hasPoint)
返回mSequence.toString()+“;
其他的
返回mSequence.toString();
}
}
将此类单击侦听器设置为数字和“点/点”按钮:

类ClickListener实现View.OnClickListener{
@凌驾
公共void onClick(视图){
//按按钮名称获取字符
char aChar=((按钮)视图).getText().charAt(0);
//正在尝试添加字符
mDisplay.add(aChar);
//在文本视图中显示结果
tvDisplay.setText(mDisplay.toShow());
}
}
初始化活动的onCreate()中的显示:

mDisplay=newdisplay();
tvDisplay.setText(mDisplay.toShow());

使用格式化程序。