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