做了一个简单的计算器,和大家交流一下,这个计算器不能实现连续操作,例如1+2+3 。。。。
1 import android.app.Activity;
2 import android.os.Bundle;
3 import android.util.Log;
4 import android.view.View;
5 import android.view.View.OnClickListener;
6 import android.widget.Button;
7 import android.widget.EditText;
8
9 public class MainActivity extends Activity
10 {
11 private int willShowNumber = 0;// 要在输入框显示的数字 1+,2-,3*,4/
12 private String firstparam = "";// 保存的上次的结果
13 private String secondparam = "";// 用户输入的数字
14 // 0-9数字按钮
15 private Button btn_Zero;//
16 private Button btn_One;//
17 private Button btn_Two;//
18 private Button btn_Three;//
19 private Button btn_Four;//
20 private Button btn_Five;//
21 private Button btn_Six;//
22 private Button btn_Seven;//
23 private Button btn_Eight;//
24 private Button btn_Nine;//
25 // 运算符
26 private Button btn_Jia;//
27 private Button btn_Jian;//
28 private Button btn_Cheng;//
29 private Button btn_Chu;//
30 // 特殊按钮
31 private Button btn_Dian;// 小数点
32 private Button btn_Deng;// 等于号
33 private Button btn_DeleteAll;// 删除所有
34 private Button btn_DeleteSimple;// 删除一个
35
36 private EditText ett_InputNumber;//
37
38 /**
39 * 实例控件
40 */
41 @Override
42 public void onCreate(Bundle savedInstanceState)
43 {
44 super.onCreate(savedInstanceState);
45 setContentView(R.layout.main);
46 // 0-9数字按钮
47 btn_Zero = (Button) this.findViewById(R.id.mainactivity_button_zero);
48 btn_One = (Button) this.findViewById(R.id.mainactivity_button_one);
49 btn_Two = (Button) this.findViewById(R.id.mainactivity_button_two);
50 btn_Three = (Button) this.findViewById(R.id.mainactivity_button_three);
51 btn_Four = (Button) this.findViewById(R.id.mainactivity_button_four);
52 btn_Five = (Button) this.findViewById(R.id.mainactivity_button_five);
53 btn_Six = (Button) this.findViewById(R.id.mainactivity_button_six);
54 btn_Seven = (Button) this.findViewById(R.id.mainactivity_button_seven);
55 btn_Eight = (Button) this.findViewById(R.id.mainactivity_button_eight);
56 btn_Nine = (Button) this.findViewById(R.id.mainactivity_button_nine);
57 // 运算符
58 btn_Jia = (Button) this.findViewById(R.id.mainactivity_button_jia);
59 btn_Jian = (Button) this.findViewById(R.id.mainactivity_button_jian);
60 btn_Cheng = (Button) this.findViewById(R.id.mainactivity_button_cheng);
61 btn_Chu = (Button) this.findViewById(R.id.mainactivity_button_chu);
62
63 btn_Dian = (Button) this.findViewById(R.id.mainactivity_button_dian);// 小数点
64 btn_Deng = (Button) this.findViewById(R.id.mainactivity_button_deng);// 等于号
65 btn_DeleteAll = (Button) this.findViewById(R.id.mainactivity_button_deleteall);// 删除全部
66 btn_DeleteSimple = (Button) this.findViewById(R.id.mainactivity_button_deletesimple);// 删除一个字符
67 ett_InputNumber = (EditText) this.findViewById(R.id.mainactivity_edittext_input);// 输入框
68
69 btn_Zero.setOnClickListener(listener);
70 btn_One.setOnClickListener(listener);
71 btn_Two.setOnClickListener(listener);
72 btn_Three.setOnClickListener(listener);
73 btn_Four.setOnClickListener(listener);
74 btn_Five.setOnClickListener(listener);
75 btn_Six.setOnClickListener(listener);
76 btn_Seven.setOnClickListener(listener);
77 btn_Eight.setOnClickListener(listener);
78 btn_Nine.setOnClickListener(listener);
79
80 btn_Jia.setOnClickListener(listener);
81 btn_Jian.setOnClickListener(listener);
82 btn_Cheng.setOnClickListener(listener);
83 btn_Chu.setOnClickListener(listener);
84
85 btn_Dian.setOnClickListener(listener);
86 btn_Deng.setOnClickListener(listener);
87 btn_DeleteAll.setOnClickListener(listener);
88 btn_DeleteSimple.setOnClickListener(listener);
89 }
90
91 /**
92 * 单击事件监听器
93 */
94 private OnClickListener listener = new OnClickListener()
95 {
96 public void onClick(View v)
97 {
98 switch (v.getId())
99 {
100 case R.id.mainactivity_button_zero:
101 aaa(willShowNumber, "0");
102 break;
103 case R.id.mainactivity_button_one:
104 aaa(willShowNumber, "1");
105 break;
106 case R.id.mainactivity_button_two:
107 aaa(willShowNumber, "2");
108 break;
109 case R.id.mainactivity_button_three:
110 aaa(willShowNumber, "3");
111 break;
112 case R.id.mainactivity_button_four:
113 aaa(willShowNumber, "4");
114 break;
115 case R.id.mainactivity_button_five:
116 aaa(willShowNumber, "5");
117 break;
118 case R.id.mainactivity_button_six:
119 aaa(willShowNumber, "6");
120 break;
121 case R.id.mainactivity_button_seven:
122 aaa(willShowNumber, "7");
123 break;
124 case R.id.mainactivity_button_eight:
125 aaa(willShowNumber, "8");
126 break;
127 case R.id.mainactivity_button_nine:
128 aaa(willShowNumber, "9");
129 break;
130 case R.id.mainactivity_button_jia:
131 willShowNumber = 1;
132 ett_InputNumber.setText("+");// 将计算的结果输出
133 break;
134 case R.id.mainactivity_button_jian:
135 willShowNumber = 2;
136 ett_InputNumber.setText("-");// 将计算的结果输出
137 break;
138 case R.id.mainactivity_button_cheng:
139 willShowNumber = 3;
140 ett_InputNumber.setText("*");// 将计算的结果输出
141 break;
142 case R.id.mainactivity_button_chu:
143 willShowNumber = 4;
144 ett_InputNumber.setText("/");// 将计算的结果输出
145 break;
146 case R.id.mainactivity_button_deng:
147 if (willShowNumber != 0)
148 {
149 switch (willShowNumber)
150 {
151 case 1:
152 ett_InputNumber.setText(String.valueOf(jia(Double.valueOf(firstparam), Double.valueOf(secondparam))));
153 break;
154 case 2:
155 ett_InputNumber.setText(String.valueOf(jian(Double.valueOf(firstparam), Double.valueOf(secondparam))));
156 break;
157 case 3:
158 ett_InputNumber.setText(String.valueOf(cheng(Double.valueOf(firstparam), Double.valueOf(secondparam))));
159 break;
160 case 4:
161 ett_InputNumber.setText(String.valueOf(chu(Double.valueOf(firstparam), Double.valueOf(secondparam))));
162 break;
163 }
164 willShowNumber = 0;
165 firstparam = "";
166 secondparam = "";
167 }
168 break;
169 case R.id.mainactivity_button_dian:
170 // currentnumber += ".";
171 break;
172 case R.id.mainactivity_button_deleteall:
173 // /currentnumber = "";
174 // lastresult = "0";
175 break;
176 case R.id.mainactivity_button_deletesimple:
177 // currentnumber = "";
178 // lastresult = "0";
179 break;
180 }
181 }
182 };
183
184 private void aaa(int tag, String paramInfo)
185 {
186 if (tag != 0)
187 {
188 secondparam += paramInfo;
189 ett_InputNumber.setText(secondparam);// 将计算的结果输出
190 }
191 else
192 {
193 firstparam += paramInfo;
194 ett_InputNumber.setText(firstparam);// 将计算的结果输出
195
196 }
197 }
198
199 /**
200 * 1.除法运算
201 *
202 * @param first
203 * 第一个参数
204 * @param second
205 * 第二个参数
206 * @return 运算结果
207 */
208 private Double chu(Double first, Double second)
209 {
210
211 return first / second;
212 }
213
214 /**
215 * 1.加法运算
216 *
217 * @param first
218 * 第一个参数
219 * @param second
220 * 第二个参数
221 * @return 运算结果
222 */
223 private Double jia(Double first, Double second)
224 {
225 Log.i("Mainactivity", "first:" + first + "----second:" + second);
226 return first + second;
227 }
228
229 /**
230 * 1.减法运算
231 *
232 * @param first
233 * 第一个参数
234 * @param second
235 * 第二个参数
236 * @return 运算结果
237 */
238 private Double jian(Double first, Double second)
239 {
240 return first - second;
241 }
242
243 /**
244 * 1.乘法运算
245 *
246 * @param first
247 * 第一个参数
248 * @param second
249 * 第二个参数
250 * @return 运算结果
251 */
252 private Double cheng(Double first, Double second)
253 {
254 return first * second;
255 }
256
257 /**
258 * 1.验证输入的参数,如果长度是0,就默认值0
259 *
260 * @param inputnumber
261 * 输入的参数
262 * @return
263 */
264 private String validateInputnumber(String inputnumber)
265 {
266 if (inputnumber.length() == 0)
267 {
268 return "0";
269 }
270 return inputnumber;
271 }
272 }
main.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="fill_parent"
4 android:layout_height="fill_parent"
5 android:orientation="vertical" >
6
7 <TextView
8 android:layout_width="fill_parent"
9 android:layout_height="wrap_content"
10 android:gravity="center_vertical|center_horizontal"
11 android:text="@string/mainactivity_tile" />
12
13 <TableLayout
14 android:layout_width="fill_parent"
15 android:layout_height="fill_parent"
16 android:padding="3dip"
17 android:stretchColumns="*" >
18
19 <TableRow>
20
21 <EditText
22 android:id="@+id/mainactivity_edittext_input"
23 android:layout_span="4"
24 android:inputType="number"
25 android:maxLength="15" />
26 </TableRow>
27
28 <TableRow>
29
30 <Button
31 android:id="@+id/mainactivity_button_deleteall"
32 android:layout_height="wrap_content"
33 android:layout_span="3"
34 android:text="删除全部" />
35
36 <Button
37 android:id="@+id/mainactivity_button_deletesimple"
38 android:layout_height="wrap_content"
39 android:layout_span="1"
40 android:text="删除一个" />
41 </TableRow>
42
43 <TableRow>
44
45 <Button
46 android:id="@+id/mainactivity_button_seven"
47 android:layout_height="wrap_content"
48 android:layout_span="1"
49 android:text="7" />
50
51 <Button
52 android:id="@+id/mainactivity_button_eight"
53 android:layout_height="wrap_content"
54 android:layout_span="1"
55 android:text="8" />
56
57 <Button
58 android:id="@+id/mainactivity_button_nine"
59 android:layout_height="wrap_content"
60 android:layout_span="1"
61 android:text="9" />
62
63 <Button
64 android:id="@+id/mainactivity_button_jia"
65 android:layout_height="wrap_content"
66 android:layout_span="1"
67 android:text="+" />
68 </TableRow>
69
70 <TableRow>
71
72 <Button
73 android:id="@+id/mainactivity_button_four"
74 android:layout_height="wrap_content"
75 android:layout_span="1"
76 android:text="4" />
77
78 <Button
79 android:id="@+id/mainactivity_button_five"
80 android:layout_height="wrap_content"
81 android:layout_span="1"
82 android:text="5" />
83
84 <Button
85 android:id="@+id/mainactivity_button_six"
86 android:layout_height="wrap_content"
87 android:layout_span="1"
88 android:text="6" />
89
90 <Button
91 android:id="@+id/mainactivity_button_jian"
92 android:layout_height="wrap_content"
93 android:layout_span="1"
94 android:text="-" />
95 </TableRow>
96
97 <TableRow>
98
99 <Button
100 android:id="@+id/mainactivity_button_one"
101 android:layout_height="wrap_content"
102 android:layout_span="1"
103 android:text="1" />
104
105 <Button
106 android:id="@+id/mainactivity_button_two"
107 android:layout_height="wrap_content"
108 android:layout_span="1"
109 android:text="2" />
110
111 <Button
112 android:id="@+id/mainactivity_button_three"
113 android:layout_height="wrap_content"
114 android:layout_span="1"
115 android:text="3" />
116
117 <Button
118 android:id="@+id/mainactivity_button_cheng"
119 android:layout_height="wrap_content"
120 android:layout_span="1"
121 android:text="*" />
122 </TableRow>
123
124 <TableRow>
125
126 <Button
127 android:id="@+id/mainactivity_button_dian"
128 android:layout_height="wrap_content"
129 android:layout_span="1"
130 android:text="." />
131
132 <Button
133 android:id="@+id/mainactivity_button_zero"
134 android:layout_height="wrap_content"
135 android:layout_span="1"
136 android:text="0" />
137
138 <Button
139 android:id="@+id/mainactivity_button_deng"
140 android:layout_height="wrap_content"
141 android:layout_span="1"
142 android:text="=" />
143
144 <Button
145 android:id="@+id/mainactivity_button_chu"
146 android:layout_height="wrap_content"
147 android:layout_span="1"
148 android:text="/" />
149 </TableRow>
150 </TableLayout>
151
152 </LinearLayout>
浙公网安备 33010602011771号