-
계산기, 홈페이지 연결, 인텐트안드로이드 스튜디오 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 액티비티"/>
'안드로이드 스튜디오' 카테고리의 다른 글
날짜 / 시간 예약 구현 (0) 2021.12.31 계산기, Java 코드로 화면 구성 , 레이아웃 (0) 2021.12.31 자바 문법 예제 (0) 2021.12.30 안드로이드 스튜디오 자바 문법 (0) 2021.12.30 이미지, 체크박스, 라디오버튼, 스위치 (0) 2021.12.30