В настоящее время я учусь использовать Android Studios, и я довольно застрял.Упражнение, которое я делаю, состоит в том, чтобы создать калькулятор с помощью кнопок +, -, /.Я закончил с калькулятором и заставил его работать, кроме одного случая.
Всякий раз, когда я вставляю плавающее число, даже с одним десятичным знаком, программа вылетает.Я испытал это и при попытке делить на ноль, что я решил, окружив код try и catch.
Однако я не понимаю, что мне нужно, чтобы заставить работать десятичные дроби.Я был бы очень признателен, если бы вы посмотрели мой код и помогли мне с этой проблемой.Моя программа содержит основной класс Java и основной класс xml_class.Я опубликую их ниже:
MainActivity.java:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements
View.OnClickListener {
private Button btnAdd,btnSubtract,btnDivide,btnMultiply;
private TextView tvresult;
private EditText etfirst, etsecond;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
btnAdd =(Button) findViewById(R.id.btnAdd);
btnSubtract = (Button) findViewById(R.id.btnSubtract);
btnDivide = (Button) findViewById(R.id.btnDivide);
btnMultiply = (Button) findViewById(R.id.btnMultiply);
etfirst = (EditText) findViewById(R.id.etFirstNumber);
etsecond = (EditText) findViewById(R.id.etSecondNumber);
tvresult = (TextView) findViewById(R.id.tvResult);
btnAdd.setOnClickListener(this);
btnSubtract.setOnClickListener(this);
btnMultiply.setOnClickListener(this);
btnDivide.setOnClickListener(this);
}
@Override
public void onClick(View view) {
String num1 = etfirst.getText().toString();
String num2 = etsecond.getText().toString();
switch (view.getId()) {
case R.id.btnAdd:
double addition = Double.parseDouble(num1) +
Double.parseDouble(num2);
tvresult.setText(String.valueOf(addition));
break;
case R.id.btnSubtract:
double subtraction = Double.parseDouble(num1) -
Double.parseDouble(num2);
tvresult.setText(String.valueOf(subtraction));
break;
case R.id.btnMultiply:
double multiply = Double.parseDouble(num1) *
Double.parseDouble(num2);
tvresult.setText(String.valueOf(multiply));
break;
case R.id.btnDivide:
try {
double division = Double.parseDouble(num1) /
Double.parseDouble(num2);
tvresult.setText(String.valueOf(division));
} catch (Exception e) {
tvresult.setText("Cannot Divide!");
}
break;
}
} }
}