Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 22 сен 2018, 19:46

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 263 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14  След.
Автор Сообщение
СообщениеДобавлено: 06 ноя 2015, 19:41 
Аватар пользователя

Зарегистрирован: 23 ноя 2013, 16:08
Сообщений: 1107
Откуда: Ukraine
Благодарил (а): 31 раз.
Поблагодарили: 175 раз.
Андрей Валентинович писал(а):
как добавлять списком? Чтоб один результат не заменял другой, а результаты складывались?
Сделай результат 0, и складывай ответы вместо присвоения.
sum = 0;
...
sum += result;

_________________
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 ноя 2015, 22:01 

Зарегистрирован: 24 янв 2014, 02:45
Сообщений: 13
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
doter.ua писал(а):
Андрей Валентинович писал(а):
как добавлять списком? Чтоб один результат не заменял другой, а результаты складывались?
Сделай результат 0, и складывай ответы вместо присвоения.
sum = 0;
...
sum += result;

Всё равно один результат заменяет другой.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 24 ноя 2015, 11:31 

Зарегистрирован: 20 май 2015, 16:56
Сообщений: 5
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
У меня проблема, выводится на экран null перед началом строки в mResult.setText( r ); и далее цифры как и задумано, как убрать null? я понимаю что проблема в String, но где?
Код: [ Загрузить ] [ Скрыть ]
  1. package net.zak_uska.gridlayouts;  
  2.  
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.view.View;  
  6. import android.widget.Button;  
  7.  
  8. public class MainActivity extends Activity {  
  9.     private int mCount = 0;  
  10.     private float result = 0; 
  11.     private String r ; 
  12.  
  13.     TextView mResult;  
  14.     TextView mResult2;  
  15.  
  16.     /**  
  17.      * Called when the activity is first created.  
  18.      */  
  19.     @Override  
  20.     public void onCreate(Bundle savedInstanceState) {  
  21.         super.onCreate(savedInstanceState);  
  22.         setContentView(R.layout.activity_main);  
  23.  
  24.         mResult = (TextView) findViewById(R.id.resmedia);          
  25.         mResult2 = (TextView) findViewById(R.id.resmedia1);  
  26.  
  27.     }  
  28.  
  29.     public void onButtonClick(View view) {  
  30.         //Вводим переменные, с которыми будем оперировать:  
  31.         float result1 = 0;  
  32.         float result2 = 0;  
  33.                  
  34.         switch (view.getId()) {  
  35.             case R.id.btn1:  
  36.                 result1 += ++mCount ;  
  37.                 result += 1 ;  // это float для подсчета  
  38.                 r += 1;  // это String и выводится как текст 
  39.                 result2 = result / result1;  
  40.                 break;  
  41.             case R.id.btn2:  
  42.                 result1 += ++mCount ;  
  43.                 result += 2 ;  
  44.                 r += 2; 
  45.                 result2 = result / result1;  
  46.                 break;  
  47.             case R.id.btn3:  
  48.                 result1 += ++mCount ;  
  49.                 result += 3 ; 
  50.                 r += 3;  
  51.                 result2 = result / result1;  
  52.                 break;  
  53.             case R.id.btn4:  
  54.                 result1=+ ++mCount ;  
  55.                 result += 4 ;  
  56.                 r += 4; 
  57.                 result2 = result / result1;  
  58.                 break;  
  59.             default:  
  60.                 break;  
  61.         }  
  62.         //настраиваем отображение результата:  
  63.         mResult.setText( r );    
  64.         //настраиваем отображение результата:  
  65.         mResult2.setText("Средняя "+result2+ " есть");  
  66.     }  
  67. }   

Решил private String r = new String() ;
И новая проблема с удалением по одной последней введенной цифры. По ходу весь код переписать придётся (
и вот результат на Google Play http://bit.ly/1QZuj4C что мне и нужно было, школята рады и учителя)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 31 дек 2015, 14:51 

Зарегистрирован: 03 янв 2014, 14:28
Сообщений: 32
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Я вычитал в одной книге реализацию обработки события методом обратного вызова

Код: [ Загрузить ] [ Скрыть ]
  1.     View.OnClickListener mBtnClick = new View.OnClickListener() { 
  2.             @Override 
  3.             public void onClick(View v) { 
  4.             } 
  5.  
  6.         }; 
  7.  


промучался несколько часов пока разобрался что куда, но работает


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 31 дек 2015, 16:30 

Зарегистрирован: 03 янв 2014, 14:28
Сообщений: 32
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
вот полный код с реализацией метода обратного вызова

Код: [ Загрузить ] [ Скрыть ]
  1. import android.app.Activity; 
  2. import android.os.Bundle; 
  3. import android.text.TextUtils; 
  4. import android.widget.Button; 
  5. import android.widget.EditText; 
  6. import android.widget.TextView; 
  7. import android.view.View; 
  8.  
  9.  
  10. public class MainActivity extends Activity { 
  11.     EditText etNum1; 
  12.     EditText etNum2; 
  13.  
  14.     Button btnAdd; 
  15.     Button btnSub; 
  16.     Button btnMult; 
  17.     Button btnDiv; 
  18.  
  19.     TextView tvResult; 
  20.  
  21.     String oper = ""; 
  22.  
  23.     @Override 
  24.     protected void onCreate(Bundle savedInstanceState) { 
  25.         View.OnClickListener mBtnClick = new View.OnClickListener() { 
  26.             @Override 
  27.             public void onClick(View v) { 
  28.                 float num1 =0; 
  29.                 float num2 =0; 
  30.                 float result =0; 
  31.                 if (TextUtils.isEmpty(etNum1.getText().toString()) 
  32.                         || TextUtils.isEmpty(etNum2.getText().toString())) { 
  33.                     return; 
  34.                 } 
  35.                 num1 = Float.parseFloat(etNum1.getText().toString()); 
  36.                 num2 = Float.parseFloat(etNum2.getText().toString()); 
  37.  
  38.                 switch (v.getId()) { 
  39.                     case R.id.btnAdd: 
  40.                         oper = "+"; 
  41.                         result = num1 + num2; 
  42.                         break; 
  43.                     case R.id.btnDiv: 
  44.                         oper = "/"; 
  45.                         result = num1 / num2; 
  46.                         break; 
  47.                     case R.id.btnMult: 
  48.                         oper = "*"; 
  49.                         result = num1 * num2; 
  50.                         break; 
  51.                     case R.id.btnSub: 
  52.                         oper = "-"; 
  53.                         result = num1 - num2; 
  54.                         break; 
  55.                     default: 
  56.                         break; 
  57.  
  58.                 } 
  59.                 tvResult.setText(num1 + " " + oper + " " + num2 + " = " + result); 
  60.             } 
  61.  
  62.         }; 
  63.  
  64.  
  65.  
  66.         super.onCreate(savedInstanceState); 
  67.         setContentView(R.layout.activity_main); 
  68.  
  69.         etNum1 = (EditText) findViewById(R.id.etNum1); 
  70.         etNum2 = (EditText) findViewById(R.id.etNum2); 
  71.  
  72.         btnAdd = (Button) findViewById(R.id.btnAdd); 
  73.         btnDiv = (Button) findViewById(R.id.btnDiv); 
  74.         btnMult = (Button) findViewById(R.id.btnMult); 
  75.         btnSub = (Button) findViewById(R.id.btnSub); 
  76.  
  77.         btnSub.setOnClickListener(mBtnClick); 
  78.         btnDiv.setOnClickListener(mBtnClick); 
  79.         btnMult.setOnClickListener(mBtnClick); 
  80.         btnAdd.setOnClickListener(mBtnClick); 
  81.  
  82.         tvResult = (TextView) findViewById(R.id.tvResult); 
  83.     } 
  84.  


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 04 янв 2016, 01:24 

Зарегистрирован: 04 янв 2016, 01:12
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Подскажите пожайлуста как быть с таким результатом(код сильно не менял , как в уроке) result = num2 * 0.075/150/num1, ответ получается например = 6.0Е-4 а должно было 0.0006


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 янв 2016, 11:07 

Зарегистрирован: 16 дек 2015, 13:13
Сообщений: 9
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Руслан777 писал(а):
Подскажите пожайлуста как быть с таким результатом(код сильно не менял , как в уроке) result = num2 * 0.075/150/num1, ответ получается например = 6.0Е-4 а должно было 0.0006

ну, по сути, 6.0Е-4 и есть 0,0006. попробуйте явно преобразовать result к строковому типу
tvResult.setText(num1 + " " + oper + " " + num2 + " = " + String.valueOf(result);


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 06 фев 2016, 13:26 

Зарегистрирован: 28 янв 2016, 21:34
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
подскажите что не так постоянно сложение

Код: [ Загрузить ] [ Скрыть ]
  1. import android.support.v7.app.AppCompatActivity; 
  2. import android.os.Bundle; 
  3. import android.text.TextUtils; 
  4. import android.view.View; 
  5. import android.widget.Button; 
  6. import android.widget.TextView; 
  7.  
  8. import static java.lang.Float.parseFloat; 
  9. import static java.lang.String.*; 
  10.  
  11. public class MainActivity extends AppCompatActivity implements View.OnClickListener { 
  12.  
  13.     Button b1, b2, b3, b4, b5, b6, b7, b8, b9, b0, bm, bp, bu, bd, bpr, br, bc; //17 
  14.     TextView text1, text2; 
  15.     //String oper1 = ""; 
  16.     char oper1 = '0'; 
  17.     double temp = 0; 
  18.  
  19.     @Override 
  20.     protected void onCreate(Bundle savedInstanceState) { 
  21.         super.onCreate(savedInstanceState); 
  22.         setContentView(R.layout.activity_main); 
  23.  
  24.         text1 = (TextView) findViewById(R.id.text1); 
  25.         text2 = (TextView) findViewById(R.id.text2); 
  26.  
  27.         b1 = (Button) findViewById(R.id.b1); 
  28.         b2 = (Button) findViewById(R.id.b2); 
  29.         b3 = (Button) findViewById(R.id.b3); 
  30.         b4 = (Button) findViewById(R.id.b4); 
  31.         b5 = (Button) findViewById(R.id.b5); 
  32.         b6 = (Button) findViewById(R.id.b6); 
  33.         b7 = (Button) findViewById(R.id.b7); 
  34.         b8 = (Button) findViewById(R.id.b8); 
  35.         b9 = (Button) findViewById(R.id.b9); 
  36.         b0 = (Button) findViewById(R.id.b0); 
  37.         bm = (Button) findViewById(R.id.bm); 
  38.         bp = (Button) findViewById(R.id.bp); 
  39.         bu = (Button) findViewById(R.id.bu); 
  40.         bd = (Button) findViewById(R.id.bd); 
  41.         bpr = (Button) findViewById(R.id.bpr); 
  42.         br = (Button) findViewById(R.id.br); 
  43.         bc = (Button) findViewById(R.id.bc); 
  44.  
  45.         b1.setOnClickListener(this); 
  46.         b2.setOnClickListener(this); 
  47.         b3.setOnClickListener(this); 
  48.         b4.setOnClickListener(this); 
  49.         b5.setOnClickListener(this); 
  50.         b6.setOnClickListener(this); 
  51.         b7.setOnClickListener(this); 
  52.         b8.setOnClickListener(this); 
  53.         b9.setOnClickListener(this); 
  54.         b0.setOnClickListener(this); 
  55.         bp.setOnClickListener(this); 
  56.         bm.setOnClickListener(this); 
  57.         bd.setOnClickListener(this); 
  58.         bu.setOnClickListener(this); 
  59.         bpr.setOnClickListener(this); 
  60.         br.setOnClickListener(this); 
  61.         bc.setOnClickListener(this); 
  62.     } 
  63.  
  64.     @Override 
  65.     public void onClick(View v) { 
  66. //        float num1 = 0; 
  67. //        float num2 = 0; 
  68. //        float result = 0; 
  69.  
  70.         switch (v.getId()) { 
  71. //Дообавлени текста в поле text1 
  72.             case R.id.b1: 
  73.                 text1.setText(text1.getText() + "1"); 
  74.                 break; 
  75.             case R.id.b2: 
  76.                 text1.setText(text1.getText() + "2"); 
  77.                 break; 
  78.             case R.id.b3: 
  79.                 text1.setText(text1.getText() + "3"); 
  80.                 break; 
  81.             case R.id.b4: 
  82.                 text1.setText(text1.getText() + "4"); 
  83.                 break; 
  84.             case R.id.b5: 
  85.                 text1.setText(text1.getText() + "5"); 
  86.                 break; 
  87.             case R.id.b6: 
  88.                 text1.setText(text1.getText() + "6"); 
  89.                 break; 
  90.             case R.id.b7: 
  91.                 text1.setText(text1.getText() + "7"); 
  92.                 break; 
  93.             case R.id.b8: 
  94.                 text1.setText(text1.getText() + "8"); 
  95.                 break; 
  96.             case R.id.b9: 
  97.                 text1.setText(text1.getText() + "9"); 
  98.                 break; 
  99.             case R.id.b0: 
  100.                 text1.setText(text1.getText() + "0"); 
  101.                 break; 
  102. //Операции 
  103.             case R.id.bp: 
  104.                 oper1 = '+'; 
  105.                 temp = Double.valueOf(valueOf(text1.getText())); 
  106.                 text1.setText(""); 
  107.                 break; 
  108.             case R.id.bm: 
  109.                 oper1 = '-'; 
  110.                 temp = Double.valueOf(valueOf(text1.getText())); 
  111.                 text1.setText(""); 
  112.                 break; 
  113.             case R.id.bu: 
  114.                 oper1 = '*'; 
  115.                 temp = Double.valueOf(valueOf(text1.getText())); 
  116.                 text1.setText(""); 
  117.                 break; 
  118.             case R.id.bd: 
  119.                 oper1 = '/'; 
  120.                 temp = Double.valueOf(valueOf(text1.getText())); 
  121.                 text1.setText(""); 
  122.                 break; 
  123.  
  124.             case R.id.br: 
  125.             case '+': 
  126.                 text2.setText(valueOf(temp + Double.valueOf(valueOf(text1.getText())))); 
  127.                 break; 
  128.             case '-': 
  129.                 text2.setText(valueOf(temp - Double.valueOf(valueOf(text1.getText())))); 
  130.                 break; 
  131.             case R.id.bc: 
  132.                 temp = 0; 
  133.                 text1.setText(""); 
  134.                 text2.setText(""); 
  135.                 break; 
  136.             default: 
  137.                 break; 


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 12 фев 2016, 12:05 

Зарегистрирован: 11 фев 2016, 12:05
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Zak_uska писал(а):
У меня проблема, выводится на экран null
и вот результат на Google Play http://bit.ly/1QZuj4C что мне и нужно было, школята рады и учителя)

Только русский язык бы подучить.. "Расчитай среднею" - это сильно...


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 15 май 2016, 10:52 

Зарегистрирован: 15 май 2016, 10:36
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Ребят, я пытаюсь написать калькулятор немного по-другому. Конструктором switch в поле textView выставляется оператор, а следующий конструктор свич должен считать оператор с textview и уже выполнить логику. Как мне указать в switch что он должен считать с текствью символ?
вот


Вложения:
calc.png
calc.png [ 33.72 KiB | Просмотров: 6169 ]
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 13 июн 2016, 14:14 

Зарегистрирован: 13 июн 2016, 14:03
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Хороший алгоритм калькулятора, не составит труда переделать под Android
https://github.com/indy256/codelibrary/ ... Calc2.java

_________________
http://android4noobs.blogspot.com/


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 ноя 2016, 23:50 

Зарегистрирован: 05 ноя 2016, 23:41
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Хочу что бы вместо очистки полей из меню, была возможность очистки через кнопку. Для этого создал кнопку c id/btnDelete, все прописал, но при нажатии поля etNum1 и etNum2 очищаются, а tvResult нет. В чем может быть проблема?
Код: [ Загрузить ] [ Скрыть ]
  1. package com.example.p0191_simplecalculator; 
  2.  
  3. import android.content.ClipData; 
  4. import android.support.v7.app.AppCompatActivity; 
  5. import android.os.Bundle; 
  6. import android.text.TextUtils; 
  7. import android.view.Menu; 
  8. import android.view.MenuItem; 
  9. import android.view.View; 
  10. import android.widget.Button; 
  11. import android.widget.EditText; 
  12. import android.widget.TextView; 
  13. import android.widget.Toast; 
  14.  
  15. public class MainActivity extends AppCompatActivity implements View.OnClickListener { 
  16.  
  17.     EditText etNum1, etNum2; 
  18.     Button btnAdd, btnSub, btnMult, btnDiv; 
  19.     Button btnDelete, btnExit; 
  20.     TextView tvResult; 
  21.  
  22.     String oper = ""; 
  23.  
  24.     final int MENU_RESET_ID = 1; 
  25.     final int MENU_QUIT_ID = 2; 
  26.  
  27.     @Override 
  28.     protected void onCreate(Bundle savedInstanceState) { 
  29.         super.onCreate(savedInstanceState); 
  30.         setContentView(R.layout.activity_main); 
  31.  
  32.         etNum1 = (EditText) findViewById(R.id.etNum1); 
  33.         etNum2 = (EditText) findViewById(R.id.etNum2); 
  34.         btnAdd = (Button) findViewById(R.id.btnAdd); 
  35.         btnSub = (Button) findViewById(R.id.btnSub); 
  36.         btnMult = (Button) findViewById(R.id.btnMult); 
  37.         btnDiv = (Button) findViewById(R.id.btnDiv); 
  38.         btnDelete = (Button) findViewById(R.id.btnDelete); 
  39.         btnExit = (Button) findViewById(R.id.btnExit); 
  40.  
  41.         tvResult = (TextView) findViewById(R.id.tvResult); 
  42.  
  43.         // Прописываем обработчик 
  44.         btnAdd.setOnClickListener(this); 
  45.         btnSub.setOnClickListener(this); 
  46.         btnMult.setOnClickListener(this); 
  47.         btnDiv.setOnClickListener(this); 
  48.         btnDelete.setOnClickListener(this); 
  49.         btnExit.setOnClickListener(this); 
  50.  
  51.     } 
  52.     // создание меню 
  53.     @Override 
  54.     public boolean onCreateOptionsMenu(Menu menu) { 
  55.         menu.add(0, MENU_RESET_ID, 0, "Сброс"); 
  56.         menu.add(0, MENU_QUIT_ID, 0, "Выход"); 
  57.         return super.onCreateOptionsMenu(menu); 
  58.     } 
  59.  
  60.     //Обработка нажатий на пункты меню 
  61.     public boolean onOptionsItemSelected (MenuItem item){ 
  62.         switch (item.getItemId()){ 
  63.             case MENU_RESET_ID: 
  64.                 etNum1.setText(""); 
  65.                 etNum2.setText(""); 
  66.                 tvResult.setText(""); 
  67.                 Toast.makeText(this, "Очищено",Toast.LENGTH_SHORT).show(); 
  68.                 break; 
  69.             case MENU_QUIT_ID: 
  70.                 finish(); 
  71.                 break; 
  72.         } 
  73.         return super.onOptionsItemSelected(item); 
  74.     } 
  75.  
  76.     @Override 
  77.     public void onClick(View v) { 
  78.         float num1 = 0; 
  79.         float num2 = 0; 
  80.         float result = 0; 
  81.  
  82.        //Проверяем поля на пустоту 
  83.         if (TextUtils.isEmpty(etNum1.getText().toString()) || TextUtils.isEmpty(etNum2.getText().toString())){ 
  84.             Toast.makeText(this, "Введите значения в поля", Toast.LENGTH_SHORT).show(); 
  85.             return; 
  86.         } 
  87.         // читаем EditText и заполняем переменные числами 
  88.         num1 = Float.parseFloat(etNum1.getText().toString()); 
  89.         num2 = Float.parseFloat(etNum2.getText().toString()); 
  90.  
  91.         // определяем нажатую кнопку и выполняем соответствующую операцию 
  92.         // в oper пишем операцию, потом будем использовать в выводе 
  93.         switch (v.getId()) { 
  94.             case R.id.btnAdd: 
  95.                 oper = "+"; 
  96.                 result = num1 + num2; 
  97.  
  98.                 break; 
  99.             case R.id.btnSub: 
  100.                 oper = "-"; 
  101.                 result = num1 - num2; 
  102.  
  103.                 break; 
  104.             case R.id.btnMult: 
  105.                 oper = "*"; 
  106.                 result = num1 * num2; 
  107.  
  108.                 break; 
  109.             case R.id.btnDiv: 
  110.                 oper = "/"; 
  111.                 result = num1 / num2; 
  112.  
  113.                 if (num2==0) {tvResult.setText("На ноль делить нельзя"); 
  114.                     etNum2.setText(""); 
  115.                     return; } 
  116.                 break; 
  117.             case R.id.btnExit: 
  118.                 finish(); 
  119.                 break; 
  120.             case R.id.btnDelete: 
  121.                 etNum1.setText(""); 
  122.                 etNum2.setText(""); 
  123.                 tvResult.setText(""); 
  124.                 break; 
  125.             default: 
  126.                 break; 
  127.         } 
  128.         // формируем строку вывода 
  129.         tvResult.setText(num1 + " " + oper + " " + num2 + " = " + result ); 
  130.     } 
  131.  
  132.  


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 15 дек 2016, 15:06 
Аватар пользователя

Зарегистрирован: 15 дек 2016, 14:57
Сообщений: 13
Откуда: Volgograd
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Ребят, всем привет :)
Вот столкнулся с проблемой уже не в первый раз, не получается использовать Activity как обработчик, но до этого исправлял все простым созданием отельного обработчика OnClickListener.
Вроде все как положено, изменяю вот эту строчку:
Код: [ Загрузить ] [ Скрыть ]
  1. public class MainActivity extends AppCompatActivity 


на такую:

Код: [ Загрузить ] [ Скрыть ]
  1. public class MainActivity extends AppCompatActivity implements View.OnClickListener 


Но она подчеркивается красным, всплывающая подсказка говорит:
Class must either be declared abstract or implement abstract method

Погуглил, говорят надо дописать @Override.. Но что-то по-моему проблема в другом.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 15 дек 2016, 16:38 

Зарегистрирован: 03 янв 2014, 21:37
Сообщений: 11
Благодарил (а): 2 раз.
Поблагодарили: 2 раз.
Foxy писал(а):
Ребят, всем привет :)
Вот столкнулся с проблемой уже не в первый раз, не получается использовать Activity как обработчик, но до этого исправлял все простым созданием отельного обработчика OnClickListener.
Вроде все как положено, изменяю вот эту строчку:
Код: [ Загрузить ] [ Скрыть ]
  1. public class MainActivity extends AppCompatActivity 


на такую:

Код: [ Загрузить ] [ Скрыть ]
  1. public class MainActivity extends AppCompatActivity implements View.OnClickListener 


Но она подчеркивается красным, всплывающая подсказка говорит:
Class must either be declared abstract or implement abstract method

Погуглил, говорят надо дописать @Override.. Но что-то по-моему проблема в другом.


Привет, все нормально. Ты имплементировал интерфейс, теперь обязательно должен переопределить методы. Стань на строчку и нажми CTRL + I и выбери методы, студия их сгенерирует. После этого можно указывать Activity в обработчиках. Например btn.SetOnClickListener(this)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 дек 2016, 13:12 
Аватар пользователя

Зарегистрирован: 15 дек 2016, 14:57
Сообщений: 13
Откуда: Volgograd
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
voleg_en, вот как, благодарю! Опробую сегодня..


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 03 янв 2017, 22:23 

Зарегистрирован: 03 янв 2017, 22:21
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Если быть честным я реально начал с нуля и недавно но цель изучить хорошенько и как можно больше.
Если это всё ещё активно я не смог придумать или т.п. как мне сделать чтобы не возможно было делить на ноль, подскажите люди добрые.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 04 янв 2017, 09:47 

Зарегистрирован: 03 янв 2014, 21:37
Сообщений: 11
Благодарил (а): 2 раз.
Поблагодарили: 2 раз.
johnrich писал(а):
Если быть честным я реально начал с нуля и недавно но цель изучить хорошенько и как можно больше.
Если это всё ещё активно я не смог придумать или т.п. как мне сделать чтобы не возможно было делить на ноль, подскажите люди добрые.


Как вариант, обернуть операцию в try

try {
System.out.println(1/0);
} catch (ArithmeticException e) {
System.out.println("Произошла недопустимая арифметическая операция");
}


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 04 янв 2017, 10:03 

Зарегистрирован: 10 дек 2016, 11:51
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Понимаю что пишу не по теме но написал по теме месяц игнорируют пост поэтому уже простите пишу просто в активную тему Помогите с Уроком №3 ???


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 04 янв 2017, 10:11 

Зарегистрирован: 03 янв 2014, 21:37
Сообщений: 11
Благодарил (а): 2 раз.
Поблагодарили: 2 раз.
zzFraerOKzz писал(а):
Понимаю что пишу не по теме но написал по теме месяц игнорируют пост поэтому уже простите пишу просто в активную тему Помогите с Уроком №3 ???

Подробнее ...


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 06 фев 2017, 16:04 

Зарегистрирован: 06 фев 2017, 15:57
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Не появляется меню с очисткой полей и выхода из приложения, подскажите, что не так сделал:


полный код:

package ru.startandroid.develop.calculator;

import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements View.OnClickListener {

EditText etNum1;
EditText etNum2;

Button btnAdd;
Button btnSub;
Button btnMult;
Button btnDiv;

TextView tvResult;

String oper = "";
final int MENU_RESET_ID = 1;
final int MENU_QUIT_ID = 2;

/** Called when the activity is first created. */
@Override
protected 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);
btnSub = (Button) findViewById(R.id.btnSub);
btnMult = (Button) findViewById(R.id.btnMult);
btnDiv = (Button) findViewById(R.id.btnDiv);

tvResult = (TextView) findViewById(R.id.tvResult);

// прописываем обработчик
btnAdd.setOnClickListener(this);
btnSub.setOnClickListener(this);
btnMult.setOnClickListener(this);
btnDiv.setOnClickListener(this);

}
// создание меню
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, MENU_RESET_ID, 0, "Reset");
menu.add(0, MENU_QUIT_ID, 0, "Quit");
return super.onCreateOptionsMenu(menu);
}

// обработка нажатий на пункты меню
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case MENU_RESET_ID:
// очищаем поля
etNum1.setText("");
etNum2.setText("");
tvResult.setText("");
Toast.makeText(this, "Очищено",Toast.LENGTH_SHORT).show();
break;
case MENU_QUIT_ID:
// выход из приложения
finish();
break;
}
return super.onOptionsItemSelected(item);

}


@Override
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())){
Toast.makeText(this, "Введите значения в поля", Toast.LENGTH_SHORT).show();
return;
}
// читаем EditText и заполняем переменные числами
num1 = Float.parseFloat(etNum1.getText().toString());
num2 = Float.parseFloat(etNum2.getText().toString());

// определяем нажатую кнопку и выполняем соответствующую операцию
// в oper пишем операцию, потом будем использовать в выводе
switch (v.getId()) {
case R.id.btnAdd:
oper = "+";
result = num1 + num2;
break;
case R.id.btnSub:
oper = "-";
result = num1 - num2;
break;
case R.id.btnMult:
oper = "*";
result = num1 * num2;
break;
case R.id.btnDiv:
oper = "/";
result = num1 / num2;
break;
default:
break;
}

// формируем строку вывода
tvResult.setText(num1 + " " + oper + " " + num2 + " = " + result);
}
}


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 263 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14  След.

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB