Здравствуйте, делал 19 урок из сборника уроков сайта, нужно сделать калькулятор, сделал всё по уроку, всё работает,решил добавить кнопку "=".При нажатии на эту кнопку результат не выводится
вот листинг
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
etNum1=(EditText) findViewById(R.id.etNum1);
etNum2=(EditText) findViewById(R.id.etNum2);
btnAdd=(Button) findViewById(R.id.btnAdd);
btnSub=(Button) findViewById(R.id.btnSub);
btnDiv=(Button) findViewById(R.id.btnDiv);
btnMult=(Button) findViewById(R.id.btnMult);
tvResult=(TextView) findViewById(R.id.tvResult);
rovno=(Button) findViewById(R.id.rovno);
btnAdd.setOnClickListener(this);
btnSub.setOnClickListener(this);
btnDiv.setOnClickListener(this);
btnMult.setOnClickListener(this);
rovno.setOnClickListener(this);
}
@Override
public void onClick(View v){
float num1=0;
float num2=0;
float result=0;
if (TextUtils.isEmpty(etNum1.getText().toString())|| TextUtils.isEmpty(etNum2.getText().toString())){
return;
}
num1=Float.parseFloat(etNum1.getText().toString());
num2=Float.parseFloat(etNum2.getText().toString());
switch (v.getId()){
case R.id.btnAdd:
oper="+";
result=num1+num2;
break;
case R.id.btnDiv:
oper="/";
result=num1/num2;
break;
case R.id.btnMult:
oper="*";
result=num1*num2;
break;
case R.id.btnSub:
oper="-";
result=num1-num2;
break;
case R.id.rovno:
tvResult.setText(num1+""+oper+""+num2+"="+result);
break;
default:
break;
}
tvResult.setText(num1+""+oper+""+num2+"="+result);
выводит только 1-е число, знак операции, 2-е число, знак =.
а там где result выводит 0,0.
Если написать tvResult.setText(num1+""+oper+""+num2+"="+result); после Switch всё выводит правильно.
как сделать чтобы выводила по нажатию на кнопку.
И если не сложно объясните в чём моя ошибка.Спасибо.
Не выводит на экран результат
Re: Не выводит на экран результат
каждый твой клик обнуляет твою локальную переменную float result=0; В твоем случае, можешь вынести её в переменные класса.