Re: Урок 19. Пишем простой калькулятор
Добавлено: 29 июл 2012, 18:26
прописал вручную импорт import android.view.OnClickListener; но оно его не понимает и предлагает удалить как неиспользуемый.
Добро пожаловать на форум сайта
http://forum.startandroid.ru/
package com.example.calc1;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.os.Bundle;
import android.text.TextUtils;
public class MainActivity extends Activity {
EditText etNum1;
EditText etNum2;
Button btnAdd;
TextView tvResult;
String oper = "";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// находим элементы
etNum1 = (EditText) findViewById(R.id.etNum1);
etNum2 = (EditText) findViewById(R.id.etNum2);
btnAdd = (Button) findViewById(R.id.btnAdd);
tvResult = (TextView) findViewById(R.id.tvResult);
// прописываем обработчик
btnAdd.setOnClickListener((OnClickListener) this);
}
public void onClick(View v) {
// TODO Auto-generated method stub
float num1 = 0;
float num2 = 0;
float result = 0;
// Проверяем поля на пустоту
if (TextUtils.isEmpty(etNum1.getText().toString())
|| TextUtils.isEmpty(etNum2.getText().toString())) {
return;
}
// читаем EditText и заполняем переменные числами
num1 = Float.parseFloat(etNum1.getText().toString());
num2 = Float.parseFloat(etNum2.getText().toString());
switch (v.getId()) {
case R.id.btnAdd:
oper = "+";
result = num1 + num2;
break;
}
;
// формируем строку вывода
tvResult.setText(num1 + " " + oper + " " + num2 + " = " + result);
}
}
Что делать?The application ..... has stopped unexpectedly. Please try again
Код: Выделить всё
public class MainActivity extends Activity implements OnClickListener
//....
btnAdd.setOnClickListener(this);
так мне показывает ошибку и не дает сохранитьbtnAdd.setOnClickListener(this);
то тот же результат The application ..... has stopped unexpectedly. Please try againpublic class MainActivity extends Activity implements OnClickListener
//....
btnAdd.setOnClickListener(this);
[2012-07-30 00:09:05 - Unexpected error while launching logcat. Try reselecting the device.] device not found
com.android.ddmlib.AdbCommandRejectedException: device not found
at com.android.ddmlib.AdbHelper.setDevice(AdbHelper.java:752)
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:373)
at com.android.ddmlib.Device.executeShellCommand(Device.java:462)
at com.android.ddmuilib.logcat.LogCatReceiver$1.run(LogCatReceiver.java:109)
at java.lang.Thread.run(Unknown Source)
Код: Выделить всё
btnAdd.setOnClickListener((OnClickListener) this);
Код: Выделить всё
public class MainActivity extends Activity implements OnClickListener
Код: Выделить всё
case R.id.btnDiv:
oper = "/";
try {
result = num1 / num2;
}
catch (ArithmeticException e) {
tvResult.setText("division by zero");
}
Код: Выделить всё
case R.id.btnDiv:
oper = "/";
try {
result = num1 / num2;
}catch (ArithmeticException e) { //Обрабатываем деление на ноль
tvResult.setText("division by zero");
}catch (Exception e){ //Обрабатываем все остальное
Log.e("MyLog", e.toString());
}
Код: Выделить всё
if (Float.isInfinite(result))
{
tvResult.setText("division by zero");
}
Скажешь это когда из за infinity один из них тебе в окошко залетитAndreyI писал(а):Ну да ладно, зато космические корабли и ракеты теперь не будут терять управление из-за деления на ноль
Код: Выделить всё
Код: Выделить всё
public class MainActivity extends Activity {
EditText etNum_1; // поле ввода первого значения
EditText et_sign; // поле ввода знака (+,-,*,/)
EditText etNum_2; // поле ввода второго значения
EditText et_equals; //поле ввода знака равно (=)
EditText etNum_3; //поле результата
ImageButton button_Add;
ImageButton button_Sub;
int num = 0;
int num_a = 0;
int result;
String textValue = "";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
etNum_1 = (EditText) findViewById(R.id.etNum_1);
et_sign = (EditText) findViewById(R.id.et_sign);
etNum_2 = (EditText) findViewById(R.id.etNum_2);
et_equals = (EditText) findViewById(R.id.et_equals);
etNum_3 = (EditText) findViewById(R.id.etNum_3);
button_Add = (ImageButton) findViewById(R.id.btnAdd); // кнопка сложения
button_Sub = (ImageButton) findViewById(R.id.btnDiv); // кнопка вычитания
etNum_1.setText("");
etNum_2.setText("");
etNum_3.setText("");
}
public void onButtonClick(View view) {
switch (view.getId()) {
case R.id.btnAdd:
et_sign.setText("+");
if (etNum_1.isFocused()) {
etNum_1.clearFocus();
etNum_2.isFocusable();
etNum_2.requestFocus();
} else {
etNum_2.isFocused();
etNum_2.clearFocus();
}
num_a = num;
break;
case R.id.btnEq:
et_equals.setText("=");
if (button_Sub.isActivated()) {
result = num_a + num;
}
etNum_3.isFocusable();
etNum_3.requestFocus();
etNum_3.setText("");
etNum_3.setText(Integer.toString(result));
etNum_3.clearFocus();
break;
case R.id.btn_1:
textValue = "";
if (etNum_1.isFocused()) {
etNum_1.setText(textValue + "1");
textValue = etNum_1.getText().toString();
num = Integer.parseInt(textValue);
} else {
etNum_2.setText(textValue + "1");
textValue = etNum_2.getText().toString();
num = Integer.parseInt(textValue);
}
break;
case R.id.btn_2:
textValue = "";
if (etNum_1.isFocused()) {
etNum_1.setText(textValue + "2");
textValue = etNum_1.getText().toString();
num = Integer.parseInt(textValue);
} else {
etNum_2.setText(textValue + "2");
textValue = etNum_2.getText().toString();
num = Integer.parseInt(textValue);
}
break;
}
}
}