Android
Android Studio 날짜/시간 관련 위젯
rlaxogns2
2016. 5. 30. 19:56
날짜/시간 관련 예제)
activity_main.xml
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <LinearLayout android:orientation = "vertical" android:layout_width="match_parent" android:layout_height="wrap_content" > <Chronometer android:id="@+id/chronometer1" android:format="예약에 걸린 시간 %s" android:gravity="center" android:textSize="20dp" android:layout_width="match_parent" android:layout_height="wrap_content" /> <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="wrap_content"> <CalendarView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/calendarView1" android:showWeekNumber="false" /> <TimePicker android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/timePicker1" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ffffff"> <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/tvMin" 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:text="예약됨"/> </LinearLayout> </LinearLayout> | cs |
아래와 같은 뷰페이지 구현
MainActivity.java
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | package com.example.user150226.myttime; import android.graphics.Color; import android.os.SystemClock; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; 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; import java.util.Calendar; public class MainActivity extends AppCompatActivity { Chronometer chrono; Button btnStart, btnEnd; RadioButton rdoCal, rdoTime; CalendarView calendarView; TimePicker tPicker; TextView tvYear, tvMonth, tvDay, tvHour, tvMin; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setTitle("시간예약"); btnStart = (Button) findViewById(R.id.btnStart); btnEnd = (Button) findViewById(R.id.btnEnd); chrono = (Chronometer) findViewById(R.id.chronometer1); rdoCal = (RadioButton) findViewById(R.id.rdoCal); rdoTime = (RadioButton) findViewById(R.id.rdoTime); calendarView = (CalendarView) findViewById(R.id.calendarView1); tPicker = (TimePicker) findViewById(R.id.timePicker1); tvYear = (TextView) findViewById(R.id.tvYear); tvMonth = (TextView) findViewById(R.id.tvMonth); tvDay = (TextView) findViewById(R.id.tvDay); tvHour = (TextView) findViewById(R.id.tvHour); tvMin = (TextView) findViewById(R.id.tvMin); tPicker.setVisibility(View.INVISIBLE); calendarView.setVisibility(View.INVISIBLE); rdoCal.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { tPicker.setVisibility(View.INVISIBLE); calendarView.setVisibility(View.VISIBLE); } }); rdoTime.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { tPicker.setVisibility(View.VISIBLE); calendarView.setVisibility(View.INVISIBLE); } }); btnStart.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { chrono.setBase(SystemClock.elapsedRealtime()); chrono.start(); chrono.setTextColor(Color.RED); } }); btnEnd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { chrono.stop(); chrono.setTextColor(Color.BLUE); java.util.Calendar curDate = java.util.Calendar.getInstance(); curDate.setTimeInMillis(calendarView.getDate()); tvYear.setText(Integer.toString(curDate.get(Calendar.YEAR))); tvMonth.setText(Integer.toString(1 + curDate.get(Calendar.MONTH))); tvDay.setText(Integer.toString(curDate.get(Calendar.DATE))); tvHour.setText(Integer.toString(tPicker.getCurrentHour())); tvMin.setText(Integer.toString(tPicker.getCurrentMinute())); } }); } } | cs |
액션처리
*실행결과