본문 바로가기

카테고리 없음

Time_Widget 시간 예약

결과



time_widget.xml


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <Chronometer
        android:id="@+id/ch1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:format="걸린 시간 : %s"
        android:gravity="center"
        android:textSize="20dp"
        android:layout_marginBottom="5dp" />
   
    <Button
        android:id="@+id/btnStart"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="예약시작"
        android:layout_marginBottom="5dp"/>
   
    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/rdo0" >
 
        <RadioButton android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/rdCal"
            android:text="날짜 설정 (캘린더뷰)"/>   
           
        <RadioButton android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/rdTime"
            android:text="시간 설정"
            android:layout_marginBottom="5dp"/>   
    </RadioGroup>

    <LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
       android:layout_weight="1">

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <CalendarView
            android:id="@+id/calendar1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:showWeekNumber="false" />

        <TimePicker
            android:id="@+id/time1"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
       
    </FrameLayout>       
    </LinearLayout>
   
    <LinearLayout android:background="#EBB6C8"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
       
        <Button
            android:id="@+id/btnEnd"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="예약완료" />
       
        <TextView
            android:id="@+id/tvYear"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="0000" />
       
        <TextView android:text="년"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
       
        <TextView
            android:id="@+id/tvMonth"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="00"/>
       
        <TextView android:text="월"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
       
        <TextView
            android:id="@+id/tvDay"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="00"/>
       
        <TextView android:text="일"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
       
        <TextView
            android:id="@+id/tvHour"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="00"/>
       
        <TextView android:text="시"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
       
        <TextView
            android:id="@+id/tvMinute"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="00"/>
       
        <TextView android:text="분"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </LinearLayout>
</LinearLayout> 


Time_Widget.java







package com.example.time_widget;
import java.util.Date;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CalendarView;
import android.widget.Chronometer;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.TimePicker;

public class Time_Widget extends Activity {

    Button btnStart;            //예약 시작 Start 버튼
    Button btnEnd;            //예약 완료 End 버튼
   
    Chronometer ch1;        //걸린시간 값 나오는 것
   
    RadioGroup rdo0;            //RadioGroup 이름
    RadioButton rdCal;          //RadioButton 이름1
    RadioButton rdTime;        //RadioButton 이름1
   
    CalendarView calendar1;      //캘린더 뷰 생성 변수명
    TimePicker time1;                 //TimePicker 예약
   
    TextView tvYear,tvHour,tvMonth,tvDay,tvMinute; // TextView 이름설정해주기
    Date curDate;                                                 // Date curDate 변수 설정
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.time_widget);
        Init();             //Init 메서드 실행
    }

    private void Init() {
        btnStart = (Button)findViewById(R.id.btnStart);      //findViewById로 btnStart 불러오기
        btnEnd = (Button)findViewById(R.id.btnEnd);
       
        ch1 = (Chronometer)findViewById(R.id.ch1);
       
        rdo0 = (RadioGroup)findViewById(R.id.rdo0);
        rdCal = (RadioButton)findViewById(R.id.rdCal);
        rdTime = (RadioButton)findViewById(R.id.rdTime);
       
        calendar1 = (CalendarView)findViewById(R.id.calendar1);
        time1 = (TimePicker)findViewById(R.id.time1);
       
        tvYear = (TextView)findViewById(R.id.tvYear);
        tvHour = (TextView)findViewById(R.id.tvHour);
        tvMonth = (TextView)findViewById(R.id.tvMonth);
        tvDay = (TextView)findViewById(R.id.tvDay);
        tvMinute = (TextView)findViewById(R.id.tvMinute);
       
        time1.setVisibility(View.INVISIBLE);       
        //화면에 뿌려주는값을 안보여지게 INVISIBLE로 한다.
        calendar1.setVisibility(View.INVISIBLE);   

        //화면에 뿌려주는값을 안보여지게 INVISIBLE로 한다.
       
        curDate = new Date(calendar1.getDate());   

        //Date의 대한 값을 get으로 불러들여서 claendar1로 저장해주고 그 값을 curDate로 넣어준다.
       
        tvYear.setText(Integer.toString(1900+curDate.getYear()));       

        //curDate를 가지고 getYear해서 년도만 축출한다.   
        tvMonth.setText(Integer.toString(1+curDate.getMonth()));        

        //curDate를 가지고 getYear해서 월만 축출한다.
        tvDay.setText(Integer.toString(curDate.getDay()));               

        //curDate를 가지고 getYear해서 일만 축출한다.
        tvHour.setText(Integer.toString(time1.getCurrentHour()));       

        //curDate를 가지고 getYear해서 시간만 축출한다.
        tvMinute.setText(Integer.toString(time1.getCurrentMinute()));   

        //curDate를 가지고 getYear해서 분만 축출한다.
       
        //StartButton을 누를시 실행되는 메서드
        btnStart.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                ch1.setBase(SystemClock.elapsedRealtime());
                ch1.start();
                ch1.setTextColor(Color.RED);
            }
        });
       
        //EndButton을 누를시 실행되는 이벤트 메서드
        btnEnd.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                ch1.stop();
                ch1.setTextColor(Color.BLUE);
            }
        });
       
        //Radio Button에 rdTime을 실행 해주는 이벤트 메서드
        rdTime.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                rdCheck();
            }
        });
       
        //Radio Button에 rdCal을 실행해주는 이벤트 메서드
        rdCal.setOnClickListener(new OnClickListener() {
           
            public void onClick(View arg0) {
                rdCheck();
            }
        });
    }
   
    //rdCal을 클릭했을때 FrameSet을 통한 값들을 불러오는 것
    protected void rdCheck() {
        if(rdCal.isChecked()){
            calendar1.setVisibility(View.VISIBLE);
            time1.setVisibility(View.INVISIBLE);
        }else {
            calendar1.setVisibility(View.INVISIBLE);
            time1.setVisibility(View.VISIBLE);
        }
    }