일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- HTML역사
- Doit입문SQL
- 함수 선언
- 우아한테크
- DoitSQL입문
- 자바
- 크롤링
- DoitSQL
- 숫자형식오류
- 숫자 형식
- dbms
- DoIt
- 배열 예제
- html
- 자바 예외
- R1C3
- 크롤링 오류
- 데이터베이스
- 키-값 데이터베이스
- 자바 오류
- SQL입문
- 페이지분석
- 생성자
- 배열 3요소
- 함수
- 웹브라우저 수용도
- 예제
- 웹 브라우저 전쟁
- 예외
- SQL
Archives
- Today
- Total
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- HTML역사
- Doit입문SQL
- 함수 선언
- 우아한테크
- DoitSQL입문
- 자바
- 크롤링
- DoitSQL
- 숫자형식오류
- 숫자 형식
- dbms
- DoIt
- 배열 예제
- html
- 자바 예외
- R1C3
- 크롤링 오류
- 데이터베이스
- 키-값 데이터베이스
- 자바 오류
- SQL입문
- 페이지분석
- 생성자
- 배열 3요소
- 함수
- 웹브라우저 수용도
- 예제
- 웹 브라우저 전쟁
- 예외
- SQL
Archives
- Today
- Total
프로그래밍
[안드로이드 자바] 타임피커, 캘린더뷰를 이용한 예약 시스템 만들기(Chronometer, Timpicker, CalendarView) 본문
안드로이드/안드로이드 스튜디오
[안드로이드 자바] 타임피커, 캘린더뷰를 이용한 예약 시스템 만들기(Chronometer, Timpicker, CalendarView)
시케 2022. 5. 17. 10:42728x90
반응형
디자인
프로젝트 설명
TimePicker를 이용한 예약 프로그램
예약 시작을 누르면 타이머(Chronometer)가 붉은색으로 변하며 시작된다
날짜선택/시간선택을 라디오버튼을 이용하여 각 캘린더뷰, 스피너 이용
예약완료를 누를시 예약이 종료되며 시간을 나타냄
xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<Chronometer
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/Chrono"
android:format="예약 소요 시간 : %s"
android:textSize="20dp"
android:gravity="center"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/BtnStart"
android:text="예약시작"/>
</LinearLayout>
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/RdoCal"
android:text="날짜선택"/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/RdoTime"
android:text="시간선택"/>
</RadioGroup>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<CalendarView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/CalView"/>
<TimePicker
android:layout_width="match_parent"
android:layout_height="match_parent"
android:timePickerMode="spinner"
android:id="@+id/TPicker"/>
</FrameLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#cccccc">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/BtnEnd"
android:text="예약완료"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/TvYear"
android:text=" 0000"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="년"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/TvMonth"
android:text=" 00"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="월"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/TvDay"
android:text=" 00"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="일"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/TvHour"
android:text=" 00"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="시"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/TvMinute"
android:text=" 00"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="분에 예약된"/>
</LinearLayout>
</LinearLayout>
java
package com.example.timepicker;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.Button;
import android.widget.CalendarView;
import android.widget.Chronometer;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.TimePicker;
public class MainActivity extends AppCompatActivity {
Chronometer chrono;
Button btnStart, btnEnd;
RadioButton rdoCal, rdoTime;
CalendarView calView;
TimePicker tPicker;
TextView tvYear, tvMonth, tvDay, tvHour, tvMinute;
int sYear, sMonth, sDay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("시간 예약");
chrono = (Chronometer)findViewById(R.id.Chrono);
btnStart = (Button)findViewById(R.id.BtnStart);
btnEnd = (Button)findViewById(R.id.BtnEnd);
rdoCal = (RadioButton)findViewById(R.id.RdoCal);
rdoTime = (RadioButton)findViewById(R.id.RdoTime);
calView = (CalendarView)findViewById(R.id.CalView);
tPicker = (TimePicker)findViewById(R.id.TPicker);
tvYear = (TextView)findViewById(R.id.TvYear);
tvMonth = (TextView)findViewById(R.id.TvMonth);
tvDay = (TextView)findViewById(R.id.TvDay);
tvHour = (TextView)findViewById(R.id.TvHour);
tvMinute = (TextView)findViewById(R.id.TvMinute);
calView.setVisibility(View.INVISIBLE);
tPicker.setVisibility(View.INVISIBLE);
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chrono.setBase(SystemClock.elapsedRealtime());
chrono.start();
chrono.setTextColor(Color.RED);
}
});
rdoCal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calView.setVisibility(View.VISIBLE);
tPicker.setVisibility(View.INVISIBLE);
}
});
rdoTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
calView.setVisibility(View.INVISIBLE);
tPicker.setVisibility(View.VISIBLE);
}
});
calView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(@NonNull CalendarView view, int year, int month, int dayOfMonth) {
sYear = year;
sMonth = month+1;
sDay = dayOfMonth;
}
});
btnEnd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chrono.stop();
chrono.setTextColor(Color.BLUE);
tvYear.setText(Integer.toString(sYear));
tvMonth.setText(Integer.toString(sMonth));
tvDay.setText(Integer.toString(sDay));
tvHour.setText(Integer.toString(tPicker.getCurrentHour()));
tvMinute.setText(Integer.toString(tPicker.getCurrentMinute()));
}
});
}
}
728x90
반응형
'안드로이드 > 안드로이드 스튜디오' 카테고리의 다른 글
[안드로이드 자바] 탭 레이아웃을 이용해 이미지 바꾸기(TabLayout) (0) | 2022.05.17 |
---|---|
[안드로이드 자바] 예약 어플 만들기(Chronometer, TimePicker, DatePicker, CalendarView) (0) | 2022.05.17 |
[안드로이드 자바] 그리드 계산기(GridLayout) (0) | 2021.12.09 |
[안드로이드 자바] 라디오버튼으로 이미지 선택 출력(visible, invisible) (0) | 2021.12.09 |
[안드로이드 자바] 기본 계산기 (0) | 2021.12.09 |
Comments