Урок 19. Пишем простой калькулятор
Re: Урок 19. Пишем простой калькулятор
Тупо скопировал код в Eclipse, вставил предлагаемые классы, но в эмуляторе не работает - циферки водятся, но после нажатия кнопок ничего не происходит.
UPD: разобрался.
UPD: разобрался.
Re: Урок 19. Пишем простой калькулятор
Всем привет) Хочу выразить благодарность сайту и Андрею и Резаку. я перевел свою программу из дельфи в андроид и усовершенствовал немного. Спасибо большое) и программа уже в маркетах амазона, самсунга, appslib и на сайте
http://interesnyi.ucoz.ru/index/proekt_ ... _quot/0-13
по данным admob уже 1008 закачек (впечетления). в программе пока 3 способа шифрования. она бесплатная. хочу сделать программу фоновым, что бы когда выделяют текст и появляется панель стандартный с кнопками копировать, вставить и тд или рядом или снизу появилься кнопка шифровать при нажатии которой появится уже прога. возможно ли это? и подскажите код чтоб создать фоновую программу. что то негде нет. написано в книге что можно создать но нет ни одного примера. Буду очень рад). если кому надо то могу выложить части кода из программы.
http://interesnyi.ucoz.ru/index/proekt_ ... _quot/0-13
по данным admob уже 1008 закачек (впечетления). в программе пока 3 способа шифрования. она бесплатная. хочу сделать программу фоновым, что бы когда выделяют текст и появляется панель стандартный с кнопками копировать, вставить и тд или рядом или снизу появилься кнопка шифровать при нажатии которой появится уже прога. возможно ли это? и подскажите код чтоб создать фоновую программу. что то негде нет. написано в книге что можно создать но нет ни одного примера. Буду очень рад). если кому надо то могу выложить части кода из программы.
-
- Сообщения: 5
- Зарегистрирован: 14 янв 2013, 00:04
Re: Урок 19. Пишем простой калькулятор
Код: Выделить всё
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
Re: Урок 19. Пишем простой калькулятор
kotikkirill писал(а):не активируется автогенерация при нажатии ctlr+space, не понимаю как это исправить, или я что-то не так делаю?Код: Выделить всё
@Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub
у тебя не закрыто тело. после закрытия ошибка и там система подсказывает что обьязательно нужно поставить ретурн. нажимая получаешь следующее
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// тут будет ваш код программы я так думаю, а false незнаю так оставить или нет) я только
// начал изучать)
return false;
}
// TODO Auto-generated method stub
Re: Урок 19. Пишем простой калькулятор
посоветуйте с чего начать? для того что бы уже существующую программа вызвать при возникновение события. надо код обработчика события которая будет отлавливать писать в отдельном файле? в какой папке должен он быть (в src или res) и какой формат? и воспользоваться этой статей?
-
- Сообщения: 5
- Зарегистрирован: 14 янв 2013, 00:04
Re: Урок 19. Пишем простой калькулятор
это я знаю, я имею ввиду, что когда я начинаю писать onOptionsItemSelected и нажимаю ctlr+space, у меня не вылазит окно с выбором и мне приходится писать все в ручную, хотя должна быть автогенерацияG_O_R писал(а): у тебя не закрыто тело. после закрытия ошибка и там система подсказывает что обьязательно нужно поставить ретурн. нажимая получаешь следующее
Re: Урок 19. Пишем простой калькулятор
у меня тоже так не дает выбор. может перед ним надо было что то писать? я не знаю почему так к сожалению.
Re: Урок 19. Пишем простой калькулятор
// читаем EditText и заполняем переменные числами
num1 = Float.parseFloat(etNum1.getText().toString());
num2 = Float.parseFloat(etNum2.getText().toString());
Если текстовые поля не заполнены то возникает ошибка.
А как это избежать?
num1 = Float.parseFloat(etNum1.getText().toString());
num2 = Float.parseFloat(etNum2.getText().toString());
Если текстовые поля не заполнены то возникает ошибка.
А как это избежать?
Re: Урок 19. Пишем простой калькулятор
конструкция try/catch вам поможетBahing308 писал(а):// читаем EditText и заполняем переменные числами
num1 = Float.parseFloat(etNum1.getText().toString());
num2 = Float.parseFloat(etNum2.getText().toString());
Если текстовые поля не заполнены то возникает ошибка.
А как это избежать?
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 19. Пишем простой калькулятор
Либо заранее проверяйте, что они у вас не пусты и выдавайте соответствующее сообщение юзеруBahing308 писал(а):// читаем EditText и заполняем переменные числами
num1 = Float.parseFloat(etNum1.getText().toString());
num2 = Float.parseFloat(etNum2.getText().toString());
Если текстовые поля не заполнены то возникает ошибка.
А как это избежать?
Re: Урок 19. Пишем простой калькулятор
Добрый всем день! Подскажите почему у меня в проекте не отображаются кнопки с цифрами? Проект скомпелировался без ошибок.
- Вложения
-
- 14.png (130.43 КБ) 12556 просмотров
Re: Урок 19. Пишем простой калькулятор
Здравствуйте. Написала калькулятор для простых расчетов и перевода систем счисления. Все основные функии работают, но возникли проблемы с дробными числами. При подсчете некоторых (но не всех), например 2,8+0,8 отображается вот такое число.
Код(методы, не влияющие на расчет вставлять не стала):
public class MainActivity extends Activity implements OnClickListener{
RadioButton Bin,Oct,Dec,Hex;
EditText DataInput;
Button[] numButtons;
Button ButtonAdd;
Button ButtonSub;
Button ButtonMul;
Button ButtonDiv;
Button ButtonDot;
Button ButtonEqual;
Button ButtonC;
Button ButtonCE;
char oper=' ';
boolean fl; //метка для обновления переменной CurrentValue после нажатия любой из арифметических кнопок или равно
boolean SignRes;//метка первого присвоения
boolean SignOper; //метка для обнуления результата при наборе с кнопок, если до этого не была нажата арифметическая кнопка
boolean SignEqual; //метка для обнуления оператора, если до этого была нажата кнопка равно
boolean DivZero; //метка деления на ноль
boolean Sign2Oper; //метка обновления оператора, если было нажато два оператора подряд
double CurrentResult=1.8e+307;//максимально возможное число типа double
String CurrentValue="";
double CurrentNumber=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//чтобы приложение было полноэкранным
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
// и без заголовка
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
DataInput=(EditText)findViewById(R.id.DataInput);
DataInput.setText("0");
//Создание массива кнопок с цифрами
numButtons=new Button[10];
numButtons[0]=(Button)findViewById(R.id.button10);
numButtons[1]=(Button)findViewById(R.id.button1);
numButtons[2]=(Button)findViewById(R.id.button2);
numButtons[3]=(Button)findViewById(R.id.button3);
numButtons[4]=(Button)findViewById(R.id.button4);
numButtons[5]=(Button)findViewById(R.id.button5);
numButtons[6]=(Button)findViewById(R.id.button6);
numButtons[7]=(Button)findViewById(R.id.button7);
numButtons[8]=(Button)findViewById(R.id.button8);
numButtons[9]=(Button)findViewById(R.id.button9);
// Обнаружение кнопок операций
ButtonAdd=(Button)findViewById(R.id.buttonAdd);
ButtonAdd.setTextSize(28);
ButtonAdd.setOnClickListener(this);
ButtonSub=(Button)findViewById(R.id.buttonSub);
ButtonSub.setTextSize(28);
ButtonSub.setOnClickListener(this);
ButtonMul=(Button)findViewById(R.id.buttonMul);
ButtonMul.setTextSize(28);
ButtonMul.setOnClickListener(this);
ButtonDiv=(Button)findViewById(R.id.buttonDiv);
ButtonDiv.setTextSize(28);
ButtonDiv.setOnClickListener(this);
//Кнопка десятичной точки, = и <-
ButtonDot=(Button)findViewById(R.id.buttonDot);
ButtonDot.setTextSize(28);
ButtonDot.setOnClickListener(this);
ButtonEqual=(Button)findViewById(R.id.buttonEqual);
ButtonEqual.setTextSize(28);
ButtonEqual.setOnClickListener(this);
ButtonC=(Button)findViewById(R.id.buttonDel);
ButtonC.setTextSize(28);
ButtonC.setOnClickListener(this);
ButtonCE=(Button)findViewById(R.id.buttonCE);
ButtonCE.setTextSize(28);
ButtonCE.setOnClickListener(this);
//Добавление слушателя цифровым кнопкам
for (int i=0;i<10;i++){
numButtons.setOnClickListener(this);
numButtons.setTextSize(28);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return false;
}
// Исходный вид калькулятора
void initial(){
oper=' ';
CurrentValue="";
SignRes=false;
SignEqual=false;
CurrentResult=1.8e+307;
CurrentNumber=0;
DataInput.setText("0");
Dec.setChecked(true);
}
//Обработка десятичной точки
void Dot(){
if (CurrentValue.indexOf('.')<0) {
if (CurrentValue.length()!=0) {
CurrentValue+='.';
}
else CurrentValue="0.";
DataInput.setText(CurrentValue);
}
}
//Ввод цифр с кнопок
void InputNumber(int i){
if (CurrentValue=="0.") {//чтобы снять метку и заполнять значение после нажатия запятой после расчета о_О
fl=false;
Sign2Oper=false;
}
if (fl){ //Чтобы очистить окно калькулятора после нажатия арифметических клавиш
CurrentValue="";
fl=false;
Sign2Oper=false;//снятие метки арифметической клавиши
}
if (SignEqual) initial();//чтобы обнулить все значения, в случае если нажата кнопка равно и не нажата кнопка оператора
if (CurrentValue.length()!=0 || i!=0){//для того, чтобы запретить вывод нуля первой цифрой
if (CurrentValue.length()<15){
CurrentValue+=i; //для ограничение ввода 15-ю сиволами
DataInput.setText(CurrentValue);
}
else Toast.makeText(this, "Ограничение ввода 15 цифр", Toast.LENGTH_SHORT).show();
}
}
//Проверка результата
void InspectionResult(){
//Первое ли присвоение?
if (!SignRes){//после изменения значения метки-условие не сработает
SignRes=true;//Если первое-ставим метке значение true, затем присваиваем результат
if (CurrentValue=="") CurrentResult=0;
else CurrentResult=Double.parseDouble(CurrentValue);
}
}
//Метод проверки и обнуления меток для всех арифметических кнопок, для которых требуются два числа
void SignNullification(char operator){//В качестве аргумента передается оператор нажатой кнопки
//fl=true;//после нажатия почистить окно калькулятора и начать новый ввод переменной
if (SignEqual){
oper=' ';
SignEqual=false;
}
InspectionResult();
Calculation();
oper=operator;
fl=true;
}
//Расчет
void Calculation(){
InspectionResult();
if (CurrentValue!=""&&!DivZero) {
CurrentNumber=Double.parseDouble(CurrentValue);
DivZero=false;
}
else CurrentNumber=0;
switch(oper){
case '+':
CurrentResult+=CurrentNumber;
break;
case '-':
CurrentResult-=CurrentNumber;
break;
case '*':
CurrentResult*=CurrentNumber;
break;
case '/':
if(CurrentNumber!=0) CurrentResult/=CurrentNumber;
else {
Toast.makeText(this, "На ноль делить нельзя", Toast.LENGTH_SHORT).show();
DivZero=true;
}
break;
}
//Вывод результата в текстовое окно
void OutputResult(){
if (CurrentResult<1.8e+307){
if (CurrentResult%1==0){
if (CurrentResult<2147483647){ //максимальное число типа Integer
CurrentValue=""+(int)CurrentResult;
}
else{
CurrentValue=""+CurrentResult;
}
DataInput.setText(CurrentValue);
}
else {
CurrentValue=""+CurrentResult;
DataInput.setText(""+CurrentResult);
}
}
else {Toast.makeText(this, "Результат превышает допустимое значение", Toast.LENGTH_SHORT).show();
}
CurrentValue="";
}
//Слушатель событий
public void onClick(View arg0){
if (arg0==ButtonDot) Dot();
//Обработка ввода с кнопок
for (int i=0;i<10;i++) if (arg0==numButtons) InputNumber(i);
//Обработка математических операций
if (arg0==ButtonAdd) {
if (!Sign2Oper){//если до этого не было нажато никакого оператора-выполняется расчет
SignNullification('+');
OutputResult();
Sign2Oper=true;
}
oper='+';
}
if (arg0==ButtonSub) {
if (!Sign2Oper){//если до этого не было нажато никакого оператора-выполняется расчет
SignNullification('-');
OutputResult();
Sign2Oper=true;
}
oper='-';
}
if (arg0==ButtonMul) {
if (!Sign2Oper){//если до этого не было нажато никакого оператора-выполняется расчет
SignNullification('*');
OutputResult();
Sign2Oper=true;
};
oper='*';
}
if (arg0==ButtonDiv) {
if (!Sign2Oper){//если до этого не было нажато никакого оператора-выполняется расчет
SignNullification('/');
OutputResult();
Sign2Oper=true;
}
oper='/';
}
if (arg0==ButtonEqual){
InspectionResult();
Calculation();
OutputResult();
Sign2Oper=false;
DivZero=false;//снятие метки деления на ноль
SignEqual=true;
fl=true;//после нажатия почистить окно калькулятора и начать новый ввод переменной
}
}
В чем здесь может быть проблема?
При этом при расчете других дробных чисел, например 3,8+0,8 такого нет и отображается адекватное число.Код(методы, не влияющие на расчет вставлять не стала):
public class MainActivity extends Activity implements OnClickListener{
RadioButton Bin,Oct,Dec,Hex;
EditText DataInput;
Button[] numButtons;
Button ButtonAdd;
Button ButtonSub;
Button ButtonMul;
Button ButtonDiv;
Button ButtonDot;
Button ButtonEqual;
Button ButtonC;
Button ButtonCE;
char oper=' ';
boolean fl; //метка для обновления переменной CurrentValue после нажатия любой из арифметических кнопок или равно
boolean SignRes;//метка первого присвоения
boolean SignOper; //метка для обнуления результата при наборе с кнопок, если до этого не была нажата арифметическая кнопка
boolean SignEqual; //метка для обнуления оператора, если до этого была нажата кнопка равно
boolean DivZero; //метка деления на ноль
boolean Sign2Oper; //метка обновления оператора, если было нажато два оператора подряд
double CurrentResult=1.8e+307;//максимально возможное число типа double
String CurrentValue="";
double CurrentNumber=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//чтобы приложение было полноэкранным
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
// и без заголовка
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
DataInput=(EditText)findViewById(R.id.DataInput);
DataInput.setText("0");
//Создание массива кнопок с цифрами
numButtons=new Button[10];
numButtons[0]=(Button)findViewById(R.id.button10);
numButtons[1]=(Button)findViewById(R.id.button1);
numButtons[2]=(Button)findViewById(R.id.button2);
numButtons[3]=(Button)findViewById(R.id.button3);
numButtons[4]=(Button)findViewById(R.id.button4);
numButtons[5]=(Button)findViewById(R.id.button5);
numButtons[6]=(Button)findViewById(R.id.button6);
numButtons[7]=(Button)findViewById(R.id.button7);
numButtons[8]=(Button)findViewById(R.id.button8);
numButtons[9]=(Button)findViewById(R.id.button9);
// Обнаружение кнопок операций
ButtonAdd=(Button)findViewById(R.id.buttonAdd);
ButtonAdd.setTextSize(28);
ButtonAdd.setOnClickListener(this);
ButtonSub=(Button)findViewById(R.id.buttonSub);
ButtonSub.setTextSize(28);
ButtonSub.setOnClickListener(this);
ButtonMul=(Button)findViewById(R.id.buttonMul);
ButtonMul.setTextSize(28);
ButtonMul.setOnClickListener(this);
ButtonDiv=(Button)findViewById(R.id.buttonDiv);
ButtonDiv.setTextSize(28);
ButtonDiv.setOnClickListener(this);
//Кнопка десятичной точки, = и <-
ButtonDot=(Button)findViewById(R.id.buttonDot);
ButtonDot.setTextSize(28);
ButtonDot.setOnClickListener(this);
ButtonEqual=(Button)findViewById(R.id.buttonEqual);
ButtonEqual.setTextSize(28);
ButtonEqual.setOnClickListener(this);
ButtonC=(Button)findViewById(R.id.buttonDel);
ButtonC.setTextSize(28);
ButtonC.setOnClickListener(this);
ButtonCE=(Button)findViewById(R.id.buttonCE);
ButtonCE.setTextSize(28);
ButtonCE.setOnClickListener(this);
//Добавление слушателя цифровым кнопкам
for (int i=0;i<10;i++){
numButtons.setOnClickListener(this);
numButtons.setTextSize(28);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return false;
}
// Исходный вид калькулятора
void initial(){
oper=' ';
CurrentValue="";
SignRes=false;
SignEqual=false;
CurrentResult=1.8e+307;
CurrentNumber=0;
DataInput.setText("0");
Dec.setChecked(true);
}
//Обработка десятичной точки
void Dot(){
if (CurrentValue.indexOf('.')<0) {
if (CurrentValue.length()!=0) {
CurrentValue+='.';
}
else CurrentValue="0.";
DataInput.setText(CurrentValue);
}
}
//Ввод цифр с кнопок
void InputNumber(int i){
if (CurrentValue=="0.") {//чтобы снять метку и заполнять значение после нажатия запятой после расчета о_О
fl=false;
Sign2Oper=false;
}
if (fl){ //Чтобы очистить окно калькулятора после нажатия арифметических клавиш
CurrentValue="";
fl=false;
Sign2Oper=false;//снятие метки арифметической клавиши
}
if (SignEqual) initial();//чтобы обнулить все значения, в случае если нажата кнопка равно и не нажата кнопка оператора
if (CurrentValue.length()!=0 || i!=0){//для того, чтобы запретить вывод нуля первой цифрой
if (CurrentValue.length()<15){
CurrentValue+=i; //для ограничение ввода 15-ю сиволами
DataInput.setText(CurrentValue);
}
else Toast.makeText(this, "Ограничение ввода 15 цифр", Toast.LENGTH_SHORT).show();
}
}
//Проверка результата
void InspectionResult(){
//Первое ли присвоение?
if (!SignRes){//после изменения значения метки-условие не сработает
SignRes=true;//Если первое-ставим метке значение true, затем присваиваем результат
if (CurrentValue=="") CurrentResult=0;
else CurrentResult=Double.parseDouble(CurrentValue);
}
}
//Метод проверки и обнуления меток для всех арифметических кнопок, для которых требуются два числа
void SignNullification(char operator){//В качестве аргумента передается оператор нажатой кнопки
//fl=true;//после нажатия почистить окно калькулятора и начать новый ввод переменной
if (SignEqual){
oper=' ';
SignEqual=false;
}
InspectionResult();
Calculation();
oper=operator;
fl=true;
}
//Расчет
void Calculation(){
InspectionResult();
if (CurrentValue!=""&&!DivZero) {
CurrentNumber=Double.parseDouble(CurrentValue);
DivZero=false;
}
else CurrentNumber=0;
switch(oper){
case '+':
CurrentResult+=CurrentNumber;
break;
case '-':
CurrentResult-=CurrentNumber;
break;
case '*':
CurrentResult*=CurrentNumber;
break;
case '/':
if(CurrentNumber!=0) CurrentResult/=CurrentNumber;
else {
Toast.makeText(this, "На ноль делить нельзя", Toast.LENGTH_SHORT).show();
DivZero=true;
}
break;
}
//Вывод результата в текстовое окно
void OutputResult(){
if (CurrentResult<1.8e+307){
if (CurrentResult%1==0){
if (CurrentResult<2147483647){ //максимальное число типа Integer
CurrentValue=""+(int)CurrentResult;
}
else{
CurrentValue=""+CurrentResult;
}
DataInput.setText(CurrentValue);
}
else {
CurrentValue=""+CurrentResult;
DataInput.setText(""+CurrentResult);
}
}
else {Toast.makeText(this, "Результат превышает допустимое значение", Toast.LENGTH_SHORT).show();
}
CurrentValue="";
}
//Слушатель событий
public void onClick(View arg0){
if (arg0==ButtonDot) Dot();
//Обработка ввода с кнопок
for (int i=0;i<10;i++) if (arg0==numButtons) InputNumber(i);
//Обработка математических операций
if (arg0==ButtonAdd) {
if (!Sign2Oper){//если до этого не было нажато никакого оператора-выполняется расчет
SignNullification('+');
OutputResult();
Sign2Oper=true;
}
oper='+';
}
if (arg0==ButtonSub) {
if (!Sign2Oper){//если до этого не было нажато никакого оператора-выполняется расчет
SignNullification('-');
OutputResult();
Sign2Oper=true;
}
oper='-';
}
if (arg0==ButtonMul) {
if (!Sign2Oper){//если до этого не было нажато никакого оператора-выполняется расчет
SignNullification('*');
OutputResult();
Sign2Oper=true;
};
oper='*';
}
if (arg0==ButtonDiv) {
if (!Sign2Oper){//если до этого не было нажато никакого оператора-выполняется расчет
SignNullification('/');
OutputResult();
Sign2Oper=true;
}
oper='/';
}
if (arg0==ButtonEqual){
InspectionResult();
Calculation();
OutputResult();
Sign2Oper=false;
DivZero=false;//снятие метки деления на ноль
SignEqual=true;
fl=true;//после нажатия почистить окно калькулятора и начать новый ввод переменной
}
}
В чем здесь может быть проблема?
Re: Урок 19. Пишем простой калькулятор
Подобные ошибки возникают из-за особенностей реализации вычислений дробных чисел (чисел с плавающей запятой) на выч. устройствах.
Чтобы это устранить , как один из вариантов, округлять до нужного значения. Либо использовать специально созданные классы для точных вычислений.
Какие есть в Java - не подскажу, но Вы можете поискать.
Чтобы это устранить , как один из вариантов, округлять до нужного значения. Либо использовать специально созданные классы для точных вычислений.
Какие есть в Java - не подскажу, но Вы можете поискать.
Re: Урок 19. Пишем простой калькулятор
Так все таки, кто нибудь подскажет, почему у меня не отображаются кнопки в запущенном проекте? Несколько раз переделывал, но все одно и тоже! Сам проект я прикрепил. Посмотрите пожалуйста, и если, что неправильно сделал, то исправьте. Заранее спасибо!
- Вложения
-
- VIZ_471_Calculator.zip
- (910.51 КБ) 253 скачивания
Re: Урок 19. Пишем простой калькулятор
В вашем проекте всё ОК, работает.Oleg34 писал(а):Так все таки, кто нибудь подскажет, почему у меня не отображаются кнопки в запущенном проекте? Несколько раз переделывал, но все одно и тоже! Сам проект я прикрепил. Посмотрите пожалуйста, и если, что неправильно сделал, то исправьте. Заранее спасибо!
Вы, наверное, про кнопки цифр из скрина Bellatrix?
В вашем коде нет кнопок под цифры.
У неё код другой, в нём программно создаются кнопки:
Код: Выделить всё
//Создание массива кнопок с цифрами
numButtons=new Button[10];
numButtons[0]=(Button)findViewById(R.id.button10);
numButtons[1]=(Button)findViewById(R.id.button1);
numButtons[2]=(Button)findViewById(R.id.button2);
numButtons[3]=(Button)findViewById(R.id.button3);
numButtons[4]=(Button)findViewById(R.id.button4);
numButtons[5]=(Button)findViewById(R.id.button5);
numButtons[6]=(Button)findViewById(R.id.button6);
numButtons[7]=(Button)findViewById(R.id.button7);
numButtons[8]=(Button)findViewById(R.id.button8);
numButtons[9]=(Button)findViewById(R.id.button9);
Re: Урок 19. Пишем простой калькулятор
Да я вроде все делал, как написано в уроке №19 http://startandroid.ru/ru/uroki/vse-uro ... jator.html
А в уроке про самостоятельное добавление кнопок ничего не написано.
Я тут другой код нашел. Пытался тоже написать калькулятор, но получаю ошибку:
[2013-05-09 14:57:26 - Calc_Oleg] Could not find Calc_Oleg.apk!
Хотя опять же, ошибок не выдает вроде.
А в уроке про самостоятельное добавление кнопок ничего не написано.
Я тут другой код нашел. Пытался тоже написать калькулятор, но получаю ошибку:
[2013-05-09 14:57:26 - Calc_Oleg] Could not find Calc_Oleg.apk!
Хотя опять же, ошибок не выдает вроде.
- Вложения
-
- Calc_Oleg.zip
- (436.71 КБ) 239 скачиваний
Re: Урок 19. Пишем простой калькулятор
В уроке не написано, в нём цифры вводятся с клавы компа, а девушка просто пошла дальше, программно сгенерировала кнопки.Oleg34 писал(а):Да я вроде все делал, как написано в уроке №19 http://startandroid.ru/ru/uroki/vse-uro ... jator.html
А в уроке про самостоятельное добавление кнопок ничего не написано.
Проект не смотрел, но вот это непонятно - противоречие:Oleg34 писал(а):Я тут другой код нашел. Пытался тоже написать калькулятор, но получаю ошибку:
[2013-05-09 14:57:26 - Calc_Oleg] Could not find Calc_Oleg.apk! Хотя опять же, ошибок не выдает вроде.
иполучаю ошибку
.ошибок не выдает
Re: Урок 19. Пишем простой калькулятор
Ну ничего не подчеркивает красным в самом проекте. Визуально все в порядке, но при компиляции сообщает, что нет .ark файла
Re: Урок 19. Пишем простой калькулятор
Это действительно так, у вас в директории \Calc_Oleg\bin\ calc_oleg.jar вместо calc_oleg.apk.Oleg34 писал(а):Ну ничего не подчеркивает красным в самом проекте. Визуально все в порядке, но при компиляции сообщает, что нет .ark файла
Правой кнопкой на проекте/Run as/Android Application.
Re: Урок 19. Пишем простой калькулятор
Блин, правой кнопкой на проекте/Run as/Android Application, тут же выскакивает следующее предупреждение: android library projects cannot be launched, делаю: правой кнопкой на проекте /Properties/ Android /Library/Add, но не получается ничего добавить. Может проще переделать по новому проект?
- Вложения
-
- 1.png (213.39 КБ) 12939 просмотров