안드로이드

버튼 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>

 

 

 

 

about author

PHRASE

Level 60  머나먼나라

배고프고 배부른 때를 잘 맞추어서 다스려야 한다. 맹수를 조련하는 요령은 그 맹수가 배고파 할 때에 적당히 먹이를 주고 배불러 있을 때에는 주지 않는다. 사람과 사람 사이에도 이처럼 상대가 필요로 할 때를 잘 보아서 적당하게 여기에 대응한다. 이것이 사람을 거느리는 방법이다. -장자

댓글 ( 4)

댓글 남기기

작성