package com.example.helloandroid;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
EditText edit1, edit2;
Button btnadd, btnsub, btnmul, btndiv;
TextView textresult;
String num1, num2;
Integer result;
Button[] numButtons= new Button[10];
Integer[] numBtnIds= { R.id.BtnNum0, R.id.BtnNum1, R.id.BtnNum2, R.id.BtnNum3,
R.id.BtnNum4, R.id.BtnNum5, R.id.BtnNum6, R.id.BtnNum7, R.id.BtnNum8,
R.id.BtnNum9};
int i;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //activity_main 콘텐트를 보이도록 set
setTitle("테이블레이아웃 계산기");
edit1=(EditText)findViewById(R.id.Edit1);
edit2=(EditText)findViewById(R.id.Edit2);
btnadd=(Button)findViewById(R.id.btnADD);
btndiv=(Button)findViewById(R.id.btnDIV);
btnsub=(Button)findViewById(R.id.btnSUB);
btnmul=(Button)findViewById(R.id.btnMUL);
textresult=(TextView)findViewById(R.id.TextResult);
btnadd.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent arg1) {
num1=edit1.getText().toString();
num2=edit2.getText().toString();
result=Integer.parseInt(num1) + Integer.parseInt(num2);
textresult.setText("계산 결과: "+result.toString());
return false;
}
});
btnsub.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent arg1) {
num1=edit1.getText().toString();
num2=edit2.getText().toString();
result=Integer.parseInt(num1) - Integer.parseInt(num2);
textresult.setText("계산 결과: "+result.toString());
return false;
}
});
btnmul.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent arg1) {
num1=edit1.getText().toString();
num2=edit2.getText().toString();
result=Integer.parseInt(num1) * Integer.parseInt(num2);
textresult.setText("계산 결과: "+result.toString());
return false;
}
});
btndiv.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent arg1) {
num1=edit1.getText().toString();
num2=edit2.getText().toString();
result=Integer.parseInt(num1) / Integer.parseInt(num2);
textresult.setText("계산 결과: "+result.toString());
return false;
}
});
for(i=0; i<numBtnIds.length; i++)
{
numButtons[i]= (Button)findViewById(numBtnIds[i]);
}
/*
위에서, numBotton 배열에 각 버튼의 아이디를 삽입
이후, 이 10개의 배열에 대해, setonclicklistner을 삽입한다.
만일 클릭이 왔을 때, 에딧1이 활성화되어있다면, 아래의 것을 실행한다는 의미
즉, 각 버튼 10개에 덧뺄셈을 진행하는 기능을 삽입
*/
for(i=0; i<numBtnIds.length; i++)
{
final int index; //꼭 필요한 변수
index=i;
numButtons[index].setOnClickListener(new View.OnClickListener() {
public void onClick(View v)
{
if(edit1.isFocused() ==true) //edit1에 집중되어있을 때
{
num1=edit1.getText().toString()
+ numButtons[index].getText().toString();
edit1.setText(num1);
//기존에 있던 edit1을 스트링화 + 새로추가된 것을 얻어 스트링화, 이를 텍스트로
}
else if(edit2.isFocused()==true)
{
num2=edit2.getText().toString() +
numButtons[index].getText().toString();
edit2.setText(num2);
}
else {
Toast.makeText(getApplicationContext(),
"먼저 에디트 텍스트를 선택하세요", Toast.LENGTH_SHORT).show();
}
}
});
}
}
}
카테고리 없음