<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:id="@+id/vi1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/vi2"
android:text="결과값이 출력됩니다."
android:textSize="24sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/vi1"
/>
<Button android:layout_height="50sp" android:layout_width="100sp" android:text="1" android:id="@+id/one" android:layout_alignBaseline="@+id/two" android:layout_alignBottom="@+id/two" android:layout_toLeftOf="@+id/two"></Button>
<Button android:layout_height="50sp" android:layout_width="100sp" android:text="2" android:id="@+id/two" android:layout_below="@+id/vi2" android:layout_centerHorizontal="true"></Button>
<Button android:layout_height="50sp" android:layout_width="100sp" android:text="3" android:id="@+id/three" android:layout_alignBaseline="@+id/two" android:layout_alignBottom="@+id/two" android:layout_toRightOf="@+id/two"></Button>
<Button android:layout_height="50sp" android:layout_width="100sp" android:text="4" android:id="@+id/four" android:layout_below="@+id/two" android:layout_toLeftOf="@+id/two"></Button>
.
.
이하 생략
.
.
<Button android:layout_height="50sp" android:layout_width="200sp" android:text="Clear" android:id="@+id/cle" android:layout_below="@+id/mul" android:layout_alignLeft="@+id/mul"></Button>
<Button android:layout_height="50sp" android:layout_width="100sp" android:text="C" android:id="@+id/c" android:layout_alignBaseline="@+id/cle" android:layout_alignBottom="@+id/cle" android:layout_alignLeft="@+id/result"></Button>
</RelativeLayout>
public class WoowooActivity extends Activity implements View.OnClickListener {
TextView vi2;
EditText vi1;
Button one, two, three, four, five, six, seven, eight, nine, zero;
Button add, sub, mul, div, result, cle, c;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
vi1 = (EditText) findViewById(R.id.vi1);
vi2 = (TextView) findViewById(R.id.vi2);
one = (Button) findViewById(R.id.one);
two = (Button) findViewById(R.id.two);
.
.
생략
.
.
cle = (Button) findViewById(R.id.cle);
c = (Button) findViewById(R.id.c);
one.setOnClickListener(this);
.
.
생략
.
.
c.setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()){
case R.id.one:
vi1.append("1");
break;
case R.id.two:
vi1.append("2");
break;
.
.
생략
.
.
case R.id.mul:
vi1.append("*");
break;
case R.id.div:
vi1.append("/");
break;
case R.id.cle:
vi1.setText("");
vi2.setText("결과값이 출력됩니다.");
break;
case R.id.c:
Editable edit = vi1.getText();
int st = edit.length();
if (st > 1) {
edit.delete(st-1, st);
vi1.setText(edit);
} else if (st <= 1) {
vi1.setText("");
} break;
case R.id.result:
int i = 0;
Stack <Integer> stknum = new Stack <Integer>();
StringTokenizer snum = new StringTokenizer(vi1.getText().toString(), "+-*/ ");
StringTokenizer soper = new StringTokenizer(vi1.getText().toString(), "1234567890 ");
stknum.push(Integer.parseInt(snum.nextToken()));
while(snum.hasMoreTokens()){
String num = snum.nextToken();
char oper = soper.nextToken().charAt(0);
int res;
if(oper == '+'){
stknum.push(Integer.parseInt(num));
}else if(oper == '-'){
stknum.push(-1 * (Integer.parseInt(num)));
}else if(oper == '*'){
res = stknum.pop();
res *= Integer.parseInt(num);
stknum.push(res);
}else if(oper == '/'){
res = stknum.pop();
res /= Integer.parseInt(num);
stknum.push(res);
}
}
while(!stknum.isEmpty()){
i += stknum.pop();
}
vi2.setText(Integer.toString(i));
vi1.setText("");
break;
}
}
}
'SMART > 안드로이드' 카테고리의 다른 글
안드로이드 에뮬 한글키보드 (0) | 2011.12.07 |
---|