Android Studio를 활용한 안드로이드 프로그래밍 P181 직접풀어보기 4-3
다음과 같은 기능을 수행하는 간단한 계산기 프로그램을 작성하라.
XML코드
레이아웃에 보이는 위젯들에 대해 설정해주면됩니다. 간격조절을 위해 각 위젯의 layout_margin을 10dp로 설정했습니다.
<LinearLayout 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:orientation="vertical" >
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/edit1"
android:layout_margin="10dp"
android:hint="입력1"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/edit2"
android:layout_margin="10dp"
android:hint="입력2"/>
<Button
android:id="@+id/btnAdd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="더하기"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:id="@+id/btnMin"
android:text="빼기"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:id="@+id/btnMul"
android:text="곱하기"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:id="@+id/btnDiv"
android:text="나누기"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/TextRes"
android:textSize="30sp"
android:textColor="#FF0000"
android:layout_margin="10dp"
android:text="계산결과: "/>
</LinearLayout>
MainActivity 코드
책에서는 각 연산에 대해 일일히 클릭했을 때의 리스너를 익명클래스로 구현했는데수업시간에 교수님께서 view 클래스를 이용해서
switch케이스문으로 깔끔하게 코드 작성하는 방법을 알려주셔서 이 방식으로 작성해봤습니다.각 연산버튼의 리스너함수를 정의하고
각 연산버튼을 클릭했을 때의 리스너를 인자에 넣어주면됩니다.
package com.example.practice4_3;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
EditText edit1,edit2;
Button btnAdd,btnMin,btnMul,btnDiv;
String num1,num2;
TextView res;
Integer textres;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit1=(EditText)findViewById(R.id.edit1);
edit2=(EditText)findViewById(R.id.edit2);
btnAdd=(Button)findViewById(R.id.btnAdd);
btnMin=(Button)findViewById(R.id.btnMin);
btnMul=(Button)findViewById(R.id.btnMul);
btnDiv=(Button)findViewById(R.id.btnDiv);
res=(TextView)findViewById(R.id.TextRes);
View.OnClickListener Listener=new View.OnClickListener() {
@Override
public void onClick(View view) {
switch(view.getId())
{
case R.id.btnAdd:
num1=edit1.getText().toString();
num2=edit2.getText().toString();
textres=Integer.parseInt(num1)+Integer.parseInt(num2);
res.setText("계산결과:"+textres);
break;
case R.id.btnMin:
num1=edit1.getText().toString();
num2=edit2.getText().toString();
textres=Integer.parseInt(num1)-Integer.parseInt(num2);
res.setText("계산결과:"+textres);
break;
case R.id.btnMul:
num1=edit1.getText().toString();
num2=edit2.getText().toString();
textres=Integer.parseInt(num1)*Integer.parseInt(num2);
res.setText("계산결과:"+textres);
break;
case R.id.btnDiv:
num1=edit1.getText().toString();
num2=edit2.getText().toString();
textres=Integer.parseInt(num1)/Integer.parseInt(num2);
res.setText("계산결과:"+textres);
break;
}
}
};
btnAdd.setOnClickListener(Listener);
btnMin.setOnClickListener(Listener);
btnMul.setOnClickListener(Listener);
btnDiv.setOnClickListener(Listener);
}
}
'Android Studio를 활용한 안드로이드 프로그래밍' 카테고리의 다른 글
직접 풀어보기 5-5 (0) | 2020.05.03 |
---|---|
직접 풀어보기 5-4 (0) | 2020.05.03 |
직접 풀어보기 5-3 (0) | 2020.05.03 |
직접 풀어보기 5-2 (0) | 2020.05.03 |
직접 풀어보기 4-2 (0) | 2020.05.03 |