Форум программистов, компьютерный форум CyberForum.ru

Подскажите. Калькулятор Android - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Виснет приложение http://www.cyberforum.ru/android-dev/thread1534918.html
Здравствуйте. Почему-то иногда вместо того, чтобы выплюнуть ошибку приложение просто зависает, обычно из-за NPE, после исправления виснут перестает, но в таких случаях сложно найти причину ошибки т.к. в лог ничего не выводится и приходится перед каждой строкой писать что-то в лог и смотреть на чем зависло. Из-за чего такое может быть и как можно исправить?
Android Android. Как сохранить ArrayList<String> в файл Ребята, помогите пожалуйста. Есть список: ArrayList<String> myList; Пишу приложение типа заметок на Android, в качестве контейнера для заметок использую ArrayList<String> Собственно, вопрос. Как мне реализовать в Android Studio сохранение, с последующей загрузкой этого листа из файла. http://www.cyberforum.ru/android-dev/thread1534879.html
Отключение блокировки WAKE_LOCK Android
PowerManager powerManager; PowerManager.WakeLock wakeLock; powerManager = (PowerManager)getSystemService(POWER_SERVICE); wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Lock"); wakeLock.acquire(); В манифест добавил: <uses-permission android:name="android.permission.WAKE_LOCK"/>
Android Непонятное поведение программы!
есть счетчик, который выводит цифры в TextView (подобие секундомера) есть кнопка запуска, она же остановки счетчика. Кнопка остановки счетчика должна также обнулять его значение (т.е вписывать в исходный TextView начальное значение, а именно "0") Реализация кнопки стоп условно такова: mTimer.cancel(); //останавливаем таймер txt.setText("0"); //вписываем...
Android Вспышка при блокировке телефона http://www.cyberforum.ru/android-dev/thread1534723.html
Как заставить работать вспышку при блокировке (секунд 10+ работает и выключается, при разблокировке опять включается).
Android Сохранить текст в файл Помогите, пожалуйста, решить вопрос. Необходимо записать в файл строки из StringBuilder. Объекты: String FileName = new String(); StringBuilder SBCreate = new StringBuilder(); Обработчик нажатия на кнопку: подробнее

Показать сообщение отдельно
Viktor_911
0 / 0 / 0
Регистрация: 29.01.2015
Сообщений: 2

Подскажите. Калькулятор Android - Android

21.09.2015, 13:35. Просмотров 301. Ответов 5
Метки (Все метки)

Ребята, помогите блдондинке, пожалуйста!
В изучении java android я еще новичок.
Выполняю лабораторную "калькулятор на андроид":
Написать приложение калькулятор, где аргументы и операции вводим при помощи кнопок.
Вот мой код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
package com.example.calculat;
 
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
 
public class Main extends Activity implements OnClickListener {
    private Button button1;
    private Button button2;
    private Button button3;
    private Button button4;
    private Button button5;
    private Button button6;
    private Button button7;
    private Button button8;
    private Button button9;
    private Button button0;
    private Button buttonplus;
    private Button buttonmin;
    private Button buttonmultiply;
    private Button buttonpoint;
    private Button buttondel;
    private Button buttoneq;
    private Button buttondiv;
    private Button buttonC;
    
 
    String num1, num2;
    double result;
    int flag;
    boolean flagpoint;
    
    private TextView edittext;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        num1="";
        num2="";
        result=0;
        flag = 0;
        
        
        edittext = (TextView) findViewById(R.id.billEditText);
        
        button1 = (Button) findViewById(R.id.button1);
        button2 = (Button) findViewById(R.id.button2);
        button3 = (Button) findViewById(R.id.button3);
        button4 = (Button) findViewById(R.id.button4);
        button5 = (Button) findViewById(R.id.button5);
        button6 = (Button) findViewById(R.id.button6);
        button7 = (Button) findViewById(R.id.button7);
        button8 = (Button) findViewById(R.id.button8);
        button9 = (Button) findViewById(R.id.button9);
        button0 = (Button) findViewById(R.id.button0);
        buttonplus = (Button) findViewById(R.id.buttonplus);
        buttonmin = (Button) findViewById(R.id.buttonmin);
        buttonmultiply = (Button) findViewById(R.id.buttonmultiply);
        buttonpoint = (Button) findViewById(R.id.buttonpoint);
        buttondel = (Button) findViewById(R.id.buttondel);
        buttoneq = (Button) findViewById(R.id.buttoneq);
        buttondiv = (Button) findViewById(R.id.buttondiv);
        buttonC = (Button) findViewById(R.id.buttonC);
        
 
        button1.setOnClickListener(this);
        button2.setOnClickListener(this);
        button3.setOnClickListener(this);
        button4.setOnClickListener(this);
        button5.setOnClickListener(this);
        button6.setOnClickListener(this);
        button7.setOnClickListener(this);
        button8.setOnClickListener(this);
        button9.setOnClickListener(this);
        button0.setOnClickListener(this);
        buttonplus.setOnClickListener(this);
        buttonmin.setOnClickListener(this);
        buttonmultiply.setOnClickListener(this);
        buttonpoint.setOnClickListener(this);
        buttondel.setOnClickListener(this);
        buttoneq.setOnClickListener(this);
        buttondiv.setOnClickListener(this);
        buttonC.setOnClickListener(this);
 
 
    }
 
 
    @Override
    public void onClick(View v) {
    
        switch (v.getId()) {
        case R.id.buttonpoint:
      
            if (!flagpoint && num1.indexOf(".")<0)
            {
                if(flag == 0)
                {
                    if(num1.length() !=0 && num1.indexOf(".")<0)
                    {
                        ClickNum(".");
                    }else {
                        ClickNum("0.");
                          }
        
                }else{
                    if(num2.length() !=0)
                    {
                        ClickNum(".");
                    }else {
                        ClickNum("0.");
                        }
                flagpoint = true;
                }
            }
            break;
        case R.id.button1: 
            ClickNum("1");
            break;
        case R.id.button2:
            ClickNum("2");
            break;
        case R.id.button3:
            ClickNum("3");
            break;
        case R.id.button4:
            ClickNum("4");
            break;
        case R.id.button5:
            ClickNum("5");
            break;
        case R.id.button6: 
            ClickNum("6");
            break;
        case R.id.button7: 
            ClickNum("7");
            break;
        case R.id.button8:
            ClickNum("8");
            break;
        case R.id.button9:
            ClickNum("9");
            break;
        case R.id.button0:
            ClickNum("0");
            break;
        case R.id.buttonplus:
        
            if (flag == 0){
                flag = 1;
                
            }else{
                result = Double.parseDouble(num1)+ Double.parseDouble(num2);
                ShowNum(Double.toString(result));
                clear();            
            }
                                    
            break;
        case R.id.buttonmin:
            if (flag == 0) flag = 2;
            break;
        case R.id.buttonmultiply:
            if (flag == 0) flag = 3;
            break;
        case R.id.buttondiv:
            if (flag == 0) flag = 4;
            break;
        case R.id.buttonC:
            clear();
            edittext.setText("0");
            break;
                        
        case R.id.buttoneq:
                if(num1 != null) calc();
                break;
        case R.id.buttondel:
               if(flag == 0){
                 if(num1.length() != 0){
                   if(num1.substring(num1.length()-1, num1.length()).equals(".")){
                       flagpoint = false;
                        num1 = num1.substring(0, num1.length()-1);
                        }
                    }
                     ShowNum(num1);
              }else{
                     if(num2.length() != 0){
                       if(num2.substring(num2.length()-1, num2.length()).equals(".")){
                           flagpoint = false;
                           num2 = num2.substring(0, num2.length()-1);
                       }
                     }
                     ShowNum(num2);
                  }
                 break;
        
            default:
                 Toast.makeText(this, R.string.no_operation, Toast.LENGTH_LONG).show();
            break;
 
        }
    }
 
 
    private void calc() {
        double a =0;
        double b =0;
        a = Double.parseDouble(num1);
        b = Double.parseDouble(num2);
        switch(flag){
 
        case 1:
            result = a + b;
            ShowNum(Double.toString(result));
            
            break;
        case 2:
            result = a - b;
            ShowNum(Double.toString(result));
            break;
        case 3:
            result = a * b;
            ShowNum(Double.toString(result));
            break;
        case 4:
            try
            {
            result = a / b;
            ShowNum(Double.toString(result));
            }
            catch (ArithmeticException e) {
                Toast.makeText(this, "Нельзя делить на ноль!", Toast.LENGTH_LONG).show();
            }
        }
        
    }
    private void clear() {
        num1="";
        num2="";
        flag = 0;
        flagpoint = false;
        
        
    }
    private void ClickNum(String num){
 
         if(flag == 0){
              num1=num1+num;
              ShowNum(num1);
         }else{
                num2=num2+num;
                ShowNum(num2);
                
         }
             }
 
    private void ShowNum (String num)
    {
         if(num.length() != 0)
         edittext.setText(num);
         
    }
  
   }
Не могу додуматься в следующем:
Допустим нажимаю 1 + 1 = 2. Хорошо. Продолжаю операцию нажимаю +, - вылетаю из приложения.
И следущее, дпустим 1 + 1 + выдает результат 2, + ввожу следующие аргументы 3, нажимаю + ничего не происходит. Операция выполняется только между двумя переменными. Что делать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru