我是Android SDK编程的初学者。
我所拥有的是一个计算器,当我按下计算按钮时它不显示小数,如果有任何方法可以显示它?如果我没有填写EditText,也会崩溃。
Button cal;
EditText n1,n2,n3;
TextView answer;
int x,y,r,z;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
answer = (TextView)findViewById(R.id.res);
n1 = (EditText)findViewById(R.id.n1);
n2 = (EditText)findViewById(R.id.n2);
n3 = (EditText)findViewById(R.id.n3);
cal = (Button)findViewById(R.id.calc);
cal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
x=Integer.parseInt(n1.getText().toString());
y=Integer.parseInt(n2.getText().toString());
z=Integer.parseInt(n3.getText().toString());
r=(x+y+z)/3;
answer.setText("" + r);
}
});
答案 0 :(得分:0)
您正在使用Integer.parseInt,以获取小数使用Double.parseDouble
将其设置为编辑文本 -
n1.setInputType(InputType.TYPE_CLASS_NUMBER);
n2.setInputType(InputType.TYPE_CLASS_NUMBER);
n3.setInputType(InputType.TYPE_CLASS_NUMBER);
用于崩溃检查,用户只有在编辑文本具有值时才能计算
cal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(!n1.getText().toString().isEmpty()&&!n2.getText().toString().isEmpty()&&!n3.getText().toString().isEmpty())
calculateResult();
else{ //show error message
}
}
});
public void calculateResult()
{
x=Double.parseDouble(n1.getText().toString());
y=Double.parseDouble(n2.getText().toString());
z=Double.parseDouble(n3.getText().toString());
r=(x+y+z)/3;
answer.setText("" + r);
}
并将x,y,z,r的数据类型更改为double