반응형
Android
- activity_[project_name].xml 의 layout에 대해 사용 예제.
layout
- 속성
- margin - 어떤 객체(버튼, 텍스트 등)가 layout내에 놓였을때 layout의 시작점 및 다른 객체와의 간격 등의 여백 정도로 이해하면 될것 같다.
- padding - margin과 비슷한 개념이지만 본인 내에 텍스트나 버튼 등의 객체가 놓이는 위치를 의미.
- 같은것 같으면서도 다름.
- 종류
- relativeLayout - 자식 뷰를 상대적으로 배치할 수 있는 뷰
- linearLayout - 자식뷰를 선형적으로 배치할 수 있는 뷰, 수직과 수평 모드가 있음.
- gridLayout - 자식뷰를 바둑판 식으로 배치할 수 있는 뷰
- 속성
간단한 계산기 만들기.
- 조건
- 수식을 보여주는 preview 창 만들기.
- 결과를 보여주는 resultView 창 만들기
- 0~9, 취소, =, +, -, *, /
- 조건
- 소스 1. project_nameActivity.java 기존 소스에 추가
public class MainActivity extends AppCompatActivity implements View.OnClickListener{ //확인 //변수선언 Button bt1; Button bt2; Button bt3; Button bt4; Button bt5; Button bt6; Button bt7; Button bt8; Button bt9; Button bt0; Button btPS; Button btMS; Button btMY; Button btDE; Button btRUN; Button btCAN; TextView result; TextView preview; // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ protected void onCreate() { //함수내에 아래 정리 //ID 배정. bt1 = (Button) findViewById(R.id.button15); //1 bt2 = (Button) findViewById(R.id.button16); //2 bt3 = (Button) findViewById(R.id.button17); //3 bt4 = (Button) findViewById(R.id.button19); //4 bt5 = (Button) findViewById(R.id.button20); //5 bt6 = (Button) findViewById(R.id.button21); //6 bt7 = (Button) findViewById(R.id.button23); //7 bt8 = (Button) findViewById(R.id.button24); //8 bt9 = (Button) findViewById(R.id.button25); //9 bt0 = (Button) findViewById(R.id.button28); //0 btCAN = (Button) findViewById(R.id.button27); //ac or ce btRUN = (Button) findViewById(R.id.button29); // = btPS = (Button) findViewById(R.id.button18); //+ btMS = (Button) findViewById(R.id.button22); //- btMY = (Button) findViewById(R.id.button26); //* btDE = (Button) findViewById(R.id.button30); // / //버튼을 눌렀을때 반응할 수 있도록 Listener Setting bt1.setOnClickListener(this); bt2.setOnClickListener(this); bt3.setOnClickListener(this); bt4.setOnClickListener(this); bt5.setOnClickListener(this); bt6.setOnClickListener(this); bt7.setOnClickListener(this); bt8.setOnClickListener(this); bt9.setOnClickListener(this); bt0.setOnClickListener(this); btRUN.setOnClickListener(this); btCAN.setOnClickListener(this); btPS.setOnClickListener(this); btMS.setOnClickListener(this); btMY.setOnClickListener(this); btDE.setOnClickListener(this); result = (TextView) findViewById(R.id.textView); preview = (TextView)findViewById(R.id.textView4); result.setText(""); preview.setText("");
- 소스 2. onCreate() 함수 아래에 onClick() 함수 선언 및 소스 구성
//소스는 간단하게 2개의 숫자와 1개의 수식을 계산하도록 설계 public void onClick(View v) { switch (v.getId()) { case R.id.button15: //1 preview.setText(preview.getText() + "1"); break; case R.id.button16: //2 preview.setText(preview.getText() + "2"); break; case R.id.button17: //3 preview.setText(preview.getText() + "3"); break; case R.id.button18: //+ String tpPlus = (String)preview.getText(); char[] carrPlus = tpPlus.toCharArray(); int end = carrPlus.length - 1; //if ( carrPlus[end] == '+' || carrPlus[end] == '-' || carrPlus[end] == '*' || carrPlus[end] == '/' ) { //부호면 if (carrPlus[end] < '0' || carrPlus[end] > '9'){ carrPlus[end] = '+'; tpPlus = new String(carrPlus); preview.setText(tpPlus); } else { preview.setText(preview.getText() + "+"); } break; case R.id.button19: //4 preview.setText(preview.getText() + "4"); break; case R.id.button20: //5 preview.setText(preview.getText() + "5"); break; case R.id.button21: //6 preview.setText(preview.getText() + "6"); break; case R.id.button22: //- String tpMinus = (String)preview.getText(); char[] carrMinus = tpMinus.toCharArray(); int endMinus = carrMinus.length - 1; if (carrMinus[endMinus] < '0' || carrMinus[endMinus] > '9'){ //부호면 carrMinus[endMinus] = '-'; tpMinus = new String(carrMinus); preview.setText(tpMinus); } else { preview.setText(preview.getText() + "-"); } break; case R.id.button23: //7 preview.setText(preview.getText() + "7"); break; case R.id.button24: //8 preview.setText(preview.getText() + "8"); break; case R.id.button25: //9 preview.setText(preview.getText() + "9"); break; case R.id.button26: //* String tpMultiple = (String)preview.getText(); char[] carrMultiple = tpMultiple.toCharArray(); int endMultiple = carrMultiple.length - 1; if (carrMultiple[endMultiple] < '0' || carrMultiple[endMultiple] > '9'){ //부호면 carrMultiple[endMultiple] = '*'; tpMultiple = new String(carrMultiple); preview.setText(tpMultiple); } else { preview.setText(preview.getText() + "*"); } break; case R.id.button27: //cancel result.setText(""); preview.setText(""); break; case R.id.button28: //0 preview.setText(preview.getText() + "0"); break; case R.id.button29: //run String str = (String) preview.getText(); String[] istr = str.split("(?<=[*/+-])|(?=[*/+-])"); double sum = 0; if (istr[1].equals("+")) { sum = Integer.parseInt(istr[0]) + Integer.parseInt(istr[2]); System.out.println("plus"); } else if (istr[1].equals("-")) { sum = Integer.parseInt(istr[0]) - Integer.parseInt(istr[2]); System.out.println("minus"); } else if (istr[1].equals("*")) { sum = Integer.parseInt(istr[0]) * Integer.parseInt(istr[2]); System.out.println("multiple"); } else if (istr[1].equals("/")) { sum = Integer.parseInt(istr[0]) / Integer.parseInt(istr[2]); System.out.println("divide"); } result.setText(sum + ""); break; case R.id.button30: /// String tpDivide = (String)preview.getText(); char[] carrDivide = tpDivide.toCharArray(); int endDivide = carrDivide.length - 1; if (carrDivide[endDivide] < '0' || carrDivide[endDivide] > '9'){ //부호면 carrDivide[endDivide] = '/'; tpDivide = new String(carrDivide); preview.setText(tpDivide); } else { preview.setText(preview.getText() + "/"); } break; } }
반응형
'안드로이드' 카테고리의 다른 글
Google Map Example (fragment) (0) | 2017.02.06 |
---|---|
DAY015. Android(5) (0) | 2017.01.31 |
DAY014. Android(4) (0) | 2017.01.26 |
DAY011. Android(1) (0) | 2017.01.23 |
댓글