본문 바로가기
computing

20251030_android8

by greentworkshop 2025. 10. 30.

초기화면
1번 라디오 버튼 클릭시 화면
2번 라디오 버튼 클릭시 화면
두 버튼 클릭시 작동하는 기능(식 변화, 시간 표시) (예약시작 -> 날짜설정 ->시간 설정 -> 예약 완료) 순서임

 

<!--p1.xml-->

<?xml version="1.0" encoding="utf-8"?>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- 첫 번째 LinearLayout (Chronometer와 Button) -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        >

        <Chronometer
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:id="@+id/chronometer1"
            android:format="예약에 걸린 시간 %s"
            android:gravity="center"
            android:textSize="20dp" />
        <Button
            android:id="@+id/btnStart"
            android:text="예약 시작"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:textSize="20dp"/>

    </LinearLayout>

    <!-- 두 번째 LinearLayout (RadioGroup과 RadioButton) -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <RadioGroup
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <RadioButton
                android:id="@+id/rdoCal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="날짜 설정(캘린더형)"
                android:textSize="20dp"/>

            <RadioButton
                android:id="@+id/rdoTime"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="시간 설정"
                android:textSize="20dp"/>

        </RadioGroup>
    </LinearLayout>
<LinearLayout
    android:layout_width="wrap_content"
    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"></CalendarView>
        <TimePicker
            android:id="@+id/timePicker1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            ></TimePicker>
    </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="예약완료"
            android:background="#CCCCCC"
            ></Button>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="  "
            android:textSize="20dp"
            ></TextView>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tvYear"
            android:text="0000"
            android:textSize="20dp"
            ></TextView>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:text="년"
            android:textSize="20dp"
            ></TextView>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tvMonth"
            android:text="00"
            android:textSize="20dp"
            ></TextView>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:text="월"
            android:textSize="20dp"
            ></TextView>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tvDay"
            android:text="00"
            android:textSize="20dp"
            ></TextView>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:text="일"
            android:textSize="20dp"
            ></TextView>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tvHour"
            android:text="00"
            android:textSize="20dp"
            ></TextView>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:text="시"
            android:textSize="20dp"
            ></TextView>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tvMinute"
            android:text="00"
            android:textSize="20dp"
            ></TextView>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:text="분"
            android:textSize="20dp"
            ></TextView>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:text="예약됨"
            android:textSize="20dp"
            ></TextView>
    </LinearLayout>
</RadioGroup>
//MainActivity.java

package com.example.myapplication;

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;

import java.util.Calendar;

public class MainActivity extends AppCompatActivity {
    Chronometer chrono;
    Button btnStart, btnEnd;
    RadioButton rdoCal, rdoTime;
    CalendarView calView;
    TimePicker tPicker;
    TextView tvYear, tvMonth, tvDay, tvHour, tvMinute;
    int selectYear, selectMonth, selectDay;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.p1);
        setTitle("시간 예약");

        chrono = (Chronometer) findViewById(R.id.chronometer1);
        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.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);
        tvMinute = (TextView) findViewById(R.id.tvMinute);

        tPicker.setVisibility(View.VISIBLE);
        calView.setVisibility(View.VISIBLE);

        rdoCal.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v){
                tPicker.setVisibility(View.INVISIBLE);
                calView.setVisibility(View.VISIBLE);
            }
        });
        rdoTime.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v){
                tPicker.setVisibility(View.VISIBLE);
                calView.setVisibility(View.INVISIBLE);
            }
        });
        btnStart.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v){
                chrono.setBase(SystemClock.elapsedRealtime());
                chrono.start();
                chrono.setTextColor(Color.RED);
            }
        });
        btnEnd.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v){
                chrono.stop();
                chrono.setTextColor(Color.BLUE);

                tvYear.setText(Integer.toString(selectYear));
                tvMonth.setText(Integer.toString(selectMonth));
                tvDay.setText(Integer.toString(selectDay));
                tvHour.setText(Integer.toString(tPicker.getCurrentHour()));
                tvMinute.setText(Integer.toString(tPicker.getCurrentMinute()));
            }
        });
        calView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
            @Override
            public void onSelectedDayChange(CalendarView view, int year, int month,int dayOfMonth) {
                selectYear=year;
                selectMonth=month;
                selectDay=dayOfMonth;
            }
        });


    }
}

'computing' 카테고리의 다른 글

android11  (0) 2025.11.13
20251103_iOS10  (0) 2025.11.03
20251027_iOS9  (0) 2025.10.27
20251013_iOS_7주차  (0) 2025.10.13
20251002_android_5_layout속성  (0) 2025.10.02