ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 계산기, 홈페이지 연결, 인텐트
    안드로이드 스튜디오 2021. 12. 30. 23:43

    1) 에디트 텍스트를 이용하여 계산기 만들기

    : LinearLayout - android:orientation="horizontal"로 설정 시 수평으로 표시

    초기 실행화면

    방법 1 : 입력받은 수를 연산자를 이용하여 계산

    button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    num1 = edit1.getText().toString();
                    num2 = edit2.getText().toString();
                    result = Integer.parseInt(num1) + Integer.parseInt(num2);
                    textView.setText(result.toString());
    
                }
            });
    
            button2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    num1 = edit1.getText().toString();
                    num2 = edit2.getText().toString();
                    result = Integer.parseInt(num1) - Integer.parseInt(num2);
                    textView.setText(result.toString());
    
                }
            });
            button3.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    num1 = edit1.getText().toString();
                    num2 = edit2.getText().toString();
                    result = Integer.parseInt(num1) * Integer.parseInt(num2);
                    textView.setText(result.toString());
    
                }
            });
    
            button4.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    num1 = edit1.getText().toString();
                    num2 = edit2.getText().toString();
                    result = Integer.parseInt(num1) / Integer.parseInt(num2);
                    textView.setText(result.toString());
    
                }
            });

    방법 2 : 연산자를 함수화하여 코드 구현

    Cal easyCal;
    
        public class Cal {
            int num1, num2;
            int result=0;
    
            Cal(int num1, int num2) {
                this.num1=num1;
                this.num2=num2;
            }
    
            void addCal(int num1, int num2) {
                result=num1+num2;
            }
    
            void subCal(int num1, int num2) {
                result=num1-num2;
            }
    
            void mulCal(int num1, int num2) {
                result =num1*num2;
            }
    
            void divCal(int num1, int num2) {
                result = num1/num2;
            }
    
            int getNum1() {
                return num1;
            }
    
            int getNum2() {
                return num2;
            }
    
            int getResult() {
                return result;
            }
        }
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            setTitle("week05_01");
    
            button1 = (Button) findViewById(R.id.add);
            button2 = (Button) findViewById(R.id.sub);
            button3 = (Button) findViewById(R.id.multi);
            button4 = (Button) findViewById(R.id.div);
            textView = (TextView) findViewById(R.id.textview);
            edit1 = (EditText) findViewById(R.id.Edit1);
            edit2 = (EditText) findViewById(R.id.Edit2);
    
            easyCal = new Cal(0, 0);
    
            button1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    num1 = edit1.getText().toString();
                    num2 = edit2.getText().toString();
    
                    int inum1 = Integer.parseInt(num1);
                    int inum2 = Integer.parseInt(num2);
    
                    easyCal.addCal(inum1,  inum2);
                    textView.setText("두 수의 합은 " + easyCal.getResult() + "입니다.");
                }
            });
    
            button2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    num1 = edit1.getText().toString();
                    num2 = edit2.getText().toString();
    
                    int inum1 = Integer.parseInt(num1);
                    int inum2 = Integer.parseInt(num2);
    
                    easyCal.subCal(inum1,  inum2);
                    textView.setText("두 수의 차는 " + easyCal.getResult() + "입니다.");
                }
            });
    
            button3.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    num1 = edit1.getText().toString();
                    num2 = edit2.getText().toString();
    
                    int inum1 = Integer.parseInt(num1);
                    int inum2 = Integer.parseInt(num2);
    
                    easyCal.mulCal(inum1,  inum2);
                    textView.setText("두 수의 곱은 " + easyCal.getResult() + "입니다.");
                }
            });
    
            button4.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    num1 = edit1.getText().toString();
                    num2 = edit2.getText().toString();
    
                    int inum1 = Integer.parseInt(num1);
                    int inum2 = Integer.parseInt(num2);
    
                    if(inum2==0) {
                        textView.setText("불능(분모=0)");
                    }else {
                        easyCal.divCal(inum1, inum2);
                        textView.setText("두 수를 나눈 결과는 " + easyCal.getResult() + "입니다.");
                    }
                }
            });
    	}

     

    2) 홈페이지 연결

    button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent mlntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://m.naver.com"));
                    startActivity(mlntent);
                }
            });

     

    - 에디트 텍스트로 홈페이지 주소를 입력받을 때의 코드 구현

    button1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    homepageurl = edit1.getText().toString();
                    Intent mlntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www."+homepageurl));
                    startActivity(mlntent);
                }
            });

     

    3) 인텐트를 이이용하여 새로운 액티비티 추가

    : [res]-[layout] - [New]-[Layout resource file] -> [New Resource File] - File name "second.xml" -> Root element - "LinearLayout" 설정하여 새로운 xml 설정

    : [Java]-[패키지명] -> [New]-[Java Class] -> Name - "secondActivity"로 액티비티 생성

     

    - MainActivity.java

    btnNewActivity.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                   
                    Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
                    startActivity(intent);
                }
            });

     

    -SecondActivity.java

    import androidx.annotation.Nullable;
    public class SecondActivity extends Activity {
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.second);
    
            Button btnReturn = (Button) findViewById(R.id.btnReturn);
    
            btnReturn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    finish();  // 메인 화면으로 돌아감
                }
            });
        }
    }

     

    ★ AndroidManifest.xml

    : 안드로이드에서는 사용할 액티비티를 AndroidManifest.xml에 반드시 등록해야함

     

    - 추가 코드

    <activity android:name = ".SecondActivity" android:label ="Second 액티비티"/>

    댓글

Designed by Tistory.