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

Обратная польская запись - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Как в getExtra использовать стринговую переменную в качестве параметра? http://www.cyberforum.ru/android-dev/thread892049.html
Имею: Button button1 = (Button)findViewById(R.id.buttonone); button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intentOne = new Intent(getBaseContext(), classOne.class);
Программирование Android движок что может подразумеваться под эти м словом при создании игры? когда все с нуля пишеш получается движок сам пишеш? http://www.cyberforum.ru/android-dev/thread891599.html
Обработка нажатия по координатам Программирование Android
Есть ImageView (.png). Нужно обработать нажатия через OnTouchListener в 3-х местах этого png файла. Область каждого нажатия - круг правильной формы. Могу ли я это области нажатия (круги) задать координатами?
Дождаться ответа из сети Программирование Android
лишнее вырезал public class Main_Activity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { LogIn r = new LogIn("http://www.",Code(savedLogin),Code(savedPassword)); r.execute(); while (r.getAnswer() == "-2") { } // как тут дождаться результата запроса?
Программирование Android Можете дать простейший код с работающим будильником http://www.cyberforum.ru/android-dev/thread891283.html
Можете дать простейший код с работающим будильником, что бы он не вылетал при выходе из приложения.
Программирование Android Открыть активити не из главного класса привет всем. ситуация такая: есть класс (обычный класс с методами) в котором в потоке допустим выполняются какие-либо действия. и в конце этих операций мне нужно открыть новое активити. примерно вот так: protected String doInBackground(String... params) { String str= null; try подробнее

Показать сообщение отдельно
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5

Обратная польская запись - Программирование Android

05.06.2013, 16:49. Просмотров 1028. Ответов 10
Метки (Все метки)

Пишу калькулятор для 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
import java.util.Stack;
 
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
 
@SuppressLint("ShowToast")
public class Main extends Activity implements OnClickListener{
    
    private static final int LENGTH_LONG = 0;
    Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bRes,bDiv,bMul,bPlus,bMinus,bClear;
    TextView strInput,strRes;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        strInput = (TextView) findViewById(R.id.str);
        strRes = (TextView) findViewById(R.id.resWiew);
        
        b1 = (Button) findViewById(R.id.b1);
        b2 = (Button) findViewById(R.id.b2);
        b3 = (Button) findViewById(R.id.b3);
        b4 = (Button) findViewById(R.id.b4);
        b5 = (Button) findViewById(R.id.b5);
        b6 = (Button) findViewById(R.id.b6);
        b7 = (Button) findViewById(R.id.b7);
        b8 = (Button) findViewById(R.id.b8);
        b9 = (Button) findViewById(R.id.b9);
        b0 = (Button) findViewById(R.id.b0);
        
        bRes = (Button) findViewById(R.id.resultB);
        bDiv = (Button) findViewById(R.id.divB);
        bMul = (Button) findViewById(R.id.mulB);
        bPlus = (Button) findViewById(R.id.plusB);
        bMinus = (Button) findViewById(R.id.minusB);
        bClear = (Button) findViewById(R.id.clearB);
        
        b1.setOnClickListener(this);
        b2.setOnClickListener(this);
        b3.setOnClickListener(this);
        b4.setOnClickListener(this);
        b5.setOnClickListener(this);
        b6.setOnClickListener(this);
        b7.setOnClickListener(this);
        b8.setOnClickListener(this);
        b9.setOnClickListener(this);
        b0.setOnClickListener(this);
        
        bRes.setOnClickListener(this);
        bDiv.setOnClickListener(this);
        bMinus.setOnClickListener(this);
        bMul.setOnClickListener(this);
        bPlus.setOnClickListener(this);
        bClear.setOnClickListener(this);    
    }
    
    public void onClick(View v) {
        
        String t = "Create by Sanu0074";
        if (t.equals(strInput.getText())){strInput.setText("");}
        
        switch(v.getId()){
        case R.id.b1: strInput.setText(strInput.getText()+"1"); break;
        case R.id.b2: strInput.setText(strInput.getText()+"2"); break;
        case R.id.b3: strInput.setText(strInput.getText()+"3"); break;
        case R.id.b4: strInput.setText(strInput.getText()+"4"); break;
        case R.id.b5: strInput.setText(strInput.getText()+"5"); break;
        case R.id.b6: strInput.setText(strInput.getText()+"6"); break;
        case R.id.b7: strInput.setText(strInput.getText()+"7"); break;
        case R.id.b8: strInput.setText(strInput.getText()+"8"); break;
        case R.id.b9: strInput.setText(strInput.getText()+"9"); break;
        case R.id.b0: strInput.setText(strInput.getText()+"0"); break;
        case R.id.plusB: strInput.setText(strInput.getText()+"+"); break;
        case R.id.minusB: strInput.setText(strInput.getText()+"-"); break;
        case R.id.mulB: strInput.setText(strInput.getText()+"*"); break;
        case R.id.divB: strInput.setText(strInput.getText()+"/"); break;
        case R.id.clearB: strInput.setText(""); break;
        
        case R.id.resultB: 
                    String txt = TranslationInScr.inPolishNotation((strInput.getText().toString()));
                    strRes.setText(txt);
                    
                    Toast.makeText(this, txt, LENGTH_LONG).show();
            break;
        }
    }
 
    @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 true;
    }
}
 
 
class TranslationInScr {
     public static String inPolishNotation(String expression) {
      expression = "(" + expression;
      expression += ")";
      String rezNotation = "";
      final Stack<Character> stack = new Stack<Character>();
      final Stack<Character> outString = new Stack<Character>();
 
      for (int i = 0; i < expression.length(); i++) {
       if (expression.charAt(i) == ')') {
        while (String.valueOf(stack.peek()).charAt(0) != '(') {
         outString.push(stack.pop());
        }
 
        stack.pop();
       }
       if (expression.charAt(i) == '(') {
        stack.push('(');
       }
 
       if ((expression.charAt(i) == '+') || (expression.charAt(i) == '-')
         || (expression.charAt(i) == '/') || (expression.charAt(i) == '*')
         || (expression.charAt(i) == '^')) {
        if (stack.size() == 0) {
         stack.push(expression.charAt(i));
        } else if (priority(expression.charAt(i)) > priority(String
          .valueOf(stack.peek()).charAt(0))) {
         stack.push(expression.charAt(i));
        } else {
         while ((stack.size() != 0)
           && (priority(String.valueOf(stack.peek()).charAt(0)) >= priority(expression
             .charAt(i)))) {
          outString.push(stack.pop());
         }
         stack.push(expression.charAt(i));
        }
       } else if (expression.charAt(i) != '(' && expression.charAt(i) != ')')
        outString.push(expression.charAt(i));
      }
      for (int j = 0; j < outString.size(); j++) {
       rezNotation = rezNotation + String.valueOf(outString.get(j));
      }
      return rezNotation;
     }
 
     private static int priority(final char operator) {
      switch (operator) {
      case '^':
       return 4;
      case '*':
       return 3;
      case '/':
       return 3;
      case '-':
       return 2;
      case '+':
       return 2;
      case '(':
       return 1;
      }
      return 0;
     }
    }
так же прилаживаю strings и main.xml для тех кто хочет потесть:
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
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".Main" >
 
    <TextView
        android:id="@+id/str"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="#cfeef8"
        android:paddingLeft="10dp"
        android:text="@string/str"
        android:paddingTop="11dp"
        android:textAppearance="@style/AppTheme"
        android:textSize="20sp" />
 
    <Button
        android:id="@+id/b1"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignLeft="@+id/str"
        android:layout_below="@+id/str"
        android:layout_marginTop="21dp"
        android:text="@string/one" />
 
    <Button
        android:id="@+id/b3"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignBaseline="@+id/b2"
        android:layout_alignBottom="@+id/b2"
        android:layout_marginLeft="14dp"
        android:layout_toRightOf="@+id/b2"
        android:text="@string/three" />
 
    <Button
        android:id="@+id/b2"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignBaseline="@+id/b1"
        android:layout_alignBottom="@+id/b1"
        android:layout_marginLeft="14dp"
        android:layout_toRightOf="@+id/b1"
        android:text="@string/two" />
 
    <Button
        android:id="@+id/b4"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignLeft="@+id/b1"
        android:layout_below="@+id/b1"
        android:layout_marginTop="16dp"
        android:text="@string/four" />
 
    <Button
        android:id="@+id/b5"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignBaseline="@+id/b4"
        android:layout_alignBottom="@+id/b4"
        android:layout_toLeftOf="@+id/b3"
        android:text="@string/five" />
 
    <Button
        android:id="@+id/b7"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignLeft="@+id/b4"
        android:layout_below="@+id/b4"
        android:layout_marginTop="17dp"
        android:text="@string/seven" />
 
    <Button
        android:id="@+id/b8"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignBaseline="@+id/b7"
        android:layout_alignBottom="@+id/b7"
        android:layout_toLeftOf="@+id/b3"
        android:text="@string/eight" />
 
    <Button
        android:id="@+id/b6"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignBaseline="@+id/b5"
        android:layout_alignBottom="@+id/b5"
        android:layout_alignLeft="@+id/b3"
        android:text="@string/six" />
 
    <Button
        android:id="@+id/b9"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignBaseline="@+id/b8"
        android:layout_alignBottom="@+id/b8"
        android:layout_alignLeft="@+id/b6"
        android:text="@string/nine" />
 
    <Button
        android:id="@+id/b0"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_below="@+id/b8"
        android:layout_marginTop="15dp"
        android:layout_toLeftOf="@+id/b3"
        android:text="@string/nul" />
 
    <Button
        android:id="@+id/clearB"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignBaseline="@+id/b0"
        android:layout_alignBottom="@+id/b0"
        android:layout_toLeftOf="@+id/b2"
        android:background="#f14141"
        android:text="@string/clear" />
 
    <Button
        android:id="@+id/plusB"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:background="#8fcaf8"
        android:layout_above="@+id/b4"
        android:layout_alignParentRight="true"
        android:text="@string/plus" />
 
    <Button
        android:id="@+id/minusB"
        android:layout_width="wrap_content"
        android:background="#8fcaf8"
        android:layout_height="50dp"
        android:layout_above="@+id/b7"
        android:layout_alignLeft="@+id/plusB"
        android:text="@string/minus" />
 
    <Button
        android:id="@+id/mulB"
        android:layout_width="wrap_content"
        android:background="#8fcaf8"
        android:layout_height="50dp"
        android:layout_above="@+id/b0"
        android:layout_alignLeft="@+id/minusB"
        android:text="@string/mul" />
 
    <Button
        android:id="@+id/divB"
        android:layout_width="wrap_content"
        android:background="#8fcaf8"
        android:layout_height="50dp"
        android:layout_alignBaseline="@+id/resultB"
        android:layout_alignBottom="@+id/resultB"
        android:layout_alignLeft="@+id/mulB"
        android:text="@string/div" />
 
    <Button
        android:id="@+id/resultB"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignBaseline="@+id/b0"
        android:layout_alignBottom="@+id/b0"
        android:layout_alignLeft="@+id/b9"
        android:background="#f1a441"
        android:text="@string/res" />
 
    <TextView
        android:id="@+id/resWiew"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true"
        android:layout_alignRight="@+id/b0"
        android:layout_marginBottom="30dp"
        android:layout_marginRight="36dp"
        android:background="#d9ffed"
        android:padding="15dp"
        android:text="@string/result" />
 
</RelativeLayout>
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
<?xml version="1.0" encoding="utf-8"?>
<resources>
 
    <string name="app_name">YarCalc</string>
    <string name="action_settings">Settings</string>
    
     
     <string name="str">Create by Sanu0074</string>
     <string name="result">Результат</string>
    <string name="plus">+</string>
    <string name="minus">-</string>
    <string name="div">/</string>
    <string name="mul">*</string>
    <string name="res">=</string>
    <string name="nul">0</string>
    <string name="one">1</string>
    <string name="two">2</string>
    <string name="three">3</string>
    <string name="four">4</string>
    <string name="five">5</string>
    <string name="six">6</string>
    <string name="seven">7</string>
    <string name="eight">8</string>
    <string name="nine">9</string>
    <string name="clear">C</string>
 
</resources>
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru