버튼 button1
텍스트 txtResult
* 이벤트 처리 방법
1. 위젯 변수 선언
2. 위젯 객체 생성 (R.java 에서 아이디 참조)
3. 이벤트 처리
뷰.setOn 이벤트 Listener(이벤트 핸들러 구현);
BmiResultActivity => back => 스택에서 제거 (pop)
BmiActivity
MainActivity
* 액티비티의 라이프 사이클
onCreate() 화면 생성 (스택에 push)
onResume() 화면 다시 그릴 때
* R.java 리소스 저장 클래스
MainActivity.java
button1
button2
button3
R.java(리소스의 주소값을 저장)
button1
button2
button3
activity_main.xml
button1
button2
button3
* R.java를 보는 방법
Project Files로 변경
* 레이아웃의 종류
RelativeLayout
다른 위젯을 기준으로 상대적인 배치
LinearLayout -
위에서 아래로, 좌에서 우로 순서대로 배치
@ => Resource 를 의미
+id => R.java 에 id를 추가
android:id="@+id/아이디"
android:id="@id/아이디"
R.java에 있는 id를 검색(추가가 아님)
android:id="@android:id/아이디"
android 내장 R.java 에 있는 id를 검색
MainActivity
package com.example.choi.ex01;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
//Activitiy : 화면 처리 클래스
public class MainActivity extends AppCompatActivity {
//화면을 생성
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
//버튼을 누르면 실행되는 method
//android:onclick="onClick"
// View v =new Button(...);
public void onClick(View v){
//new Intent(현재 클래스 .this, 다음 화면 클래스 .class)
Intent intent=null;
switch(v.getId()){
case R.id.button1:
intent =new Intent(this, ImgeViewDemo.class);
break;
case R.id.button2:
intent =new Intent(this, Exchange.class);
break;
case R.id.button3:
intent=new Intent(this, BmiActivity.class);
break;
case R.id.button4:
intent=new Intent(this, CheckboxDemo.class);
break;
case R.id.button5:
intent =new Intent(this, RadioDemo.class);
break;
}
startActivity(intent);
}
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onResume() {
super.onResume();
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.choi.ex01.MainActivity">
<!--onClick ="버튼을 클릭했을 때 실행할 함수 이름-->
<Button
android:text="이미지뷰"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/button1"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:onClick="onClick" />
<Button
android:text="환율계산"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="11dp"
android:onClick="onClick"
android:id="@+id/button2"
android:layout_below="@+id/button1"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
android:text="비만도 측정"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="13dp"
android:id="@+id/button3"
android:onClick="onClick"
android:layout_below="@+id/button2"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
android:text="체크박스"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="22dp"
android:id="@+id/button4"
android:layout_below="@+id/button3"
android:layout_centerHorizontal="true"
android:onClick="onClick"
/>
<Button
android:text="라디오버튼"
android:onClick="onClick"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/button4"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp"
android:id="@+id/button5" />
</RelativeLayout>
CheckboxDemo
package com.example.choi.ex01;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.CheckBox;
import android.widget.CompoundButton;
public class CheckboxDemo extends AppCompatActivity
implements CompoundButton.OnCheckedChangeListener{
//1.위젯 선언
CheckBox check;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.checkbox);
check=(CheckBox)findViewById(R.id.checkBox);
//3.이벤트 처리
//체크박스의 체크 상태가 변경되면 현재 클래스에 implement 된
// onCheckedChanged method가 호출됨.
check.setOnCheckedChangeListener(this);
/*
check.setOnCheckedChangeListener(
new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
check.setText("체크 상태");
}else{
check.setText("체크 되지 않은 상태");
}
}
});*/
}
// Alt + Insert => implement methods
//체크박스를 체크할 때 호출되는 method
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
check.setText("체크 상태");
}else{
check.setText("체크 되지 않은 상태");
}
}
}
checkbox.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/checkbox"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.choi.ex01.CheckboxDemo">
<CheckBox
android:text="체크되지 않은 상태"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="@+id/checkBox" />
</RelativeLayout>
RadioDemo
package com.example.choi.ex01;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
// RadioGroup.OnCheckedChangeListener => 라디오
// CompoundButton.OnCheckedChangeListener => 체크박스
public class RadioDemo extends AppCompatActivity implements
RadioGroup.OnCheckedChangeListener{
//1. 변수 선언
RadioButton rdoRed, rdoGreen, rdoBlue;
RadioGroup radio1;
LinearLayout linear1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.radio);
//2. 위젯 참조변수 설정
//현재 클래스의 rdoRed => R.java에 선언된 R.id.rdoRed 주소 가리킴
// => rdio.xml의 <RadioButton> 을 가리킴
rdoRed=(RadioButton)findViewById(R.id.radio);
rdoGreen=(RadioButton)findViewById(R.id.rdoGreen);
rdoBlue=(RadioButton)findViewById(R.id.rdoBlue);
radio1=(RadioGroup)findViewById(R.id.radio1);
linear1=(LinearLayout)findViewById(R.id.linear1);
radio1.setOnCheckedChangeListener(this);
}
//Alt +Insert => Implement Method
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){ //체크박스
case R.id.rdoBlue:
//뷰. setBackGroundColor( 색상변경)
linear1.setBackgroundColor(Color.BLUE);
break;
case R.id.rdoGreen:
linear1.setBackgroundColor(Color.GREEN);
break;
case R.id.rdoRed:
linear1.setBackgroundColor(Color.RED);
break;
}
}
}
radio.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/linear1"
>
<RadioGroup
android:id="@+id/radio1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<RadioButton
android:text="Red"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rdoRed"
android:layout_weight="1" />
<RadioButton
android:text="Green"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rdoGreen"
android:layout_weight="1" />
<RadioButton
android:text="Blue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rdoBlue"
android:layout_weight="1" />
</RadioGroup>
</LinearLayout>
댓글 ( 4)
댓글 남기기