[안드로이드] 요일별 toggle button 만들기 - fragment + 해당 요일 가져오기

2022. 3. 17. 16:10·앱 개발/Java
반응형

 

 

Activity가 아닌 Fragment에서 사용했습니다. 그러나 Activity에서도 사용법은 거의 동일합니다.

 

 

들어간 기능

1. 요일별 toggle button 표출로 만약 목요일을 누르면(활성화하면) 다른 버튼들은 비활성화

2. 어플 시작했을때 해당 요일의 정보를 받아와 해당 요일의 toggle button 자동 활성화 

 

 

 

실제 어플 적용 화면입니다

 

 

 

 


 

 

toggle button을 넣을 layout에 LinearLayout(horizontal)을 넣고 하위단에 버튼을 넣어줍니다 - 이유 : 가로 정렬

 

[toggle button을 넣을 xml]

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <ToggleButton
        android:id="@+id/toggleMon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textOff="월"
        android:textOn="월" />

    <ToggleButton
        android:id="@+id/toggleTue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textOff="화"
        android:textOn="화" />

    <ToggleButton
        android:id="@+id/toggleWed"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textOff="수"
        android:textOn="수" />

    <ToggleButton
        android:id="@+id/toggleThu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textOff="목"
        android:textOn="목" />

    <ToggleButton
        android:id="@+id/toggleFri"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textOff="금"
        android:textOn="금" />

    <ToggleButton
        android:id="@+id/toggleSat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textOff="토"
        android:textOn="토" />

    <ToggleButton
        android:id="@+id/toggleSun"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textOff="일"
        android:textOn="일" />
</LinearLayout>

 

그 다음 레이아웃과 연결된 toggle 버튼이 들어간 java class 파일에 오셔서 toggle button을 선언해줍니다 

 

//토글 버튼
private ToggleButton toggleMon, toggleTue, toggleWed, toggleThu, toggleFri, toggleSat, toggleSun;

 

 

저는 activity가 아닌 fragment에서 사용했으므로 onCreateView에 toggle button과 관련된 코드를 작성했습니다

 

 

어플을 시작했을때 해당 요일에 대한 toggle button을 활성화하면서 다른 요일의 toggle button은 비활성화 하는 코드입니다

//토글
private void togglesetting() {
    Calendar cal = Calendar.getInstance();
    String strWeek = null;

    int nWeek = cal.get(Calendar.DAY_OF_WEEK);
    if(nWeek ==1) {
        strWeek = "일요일";
        toggleMon.setChecked(false);
        toggleTue.setChecked(false);
        toggleWed.setChecked(false);
        toggleThu.setChecked(false);
        toggleFri.setChecked(false);
        toggleSat.setChecked(false);
        toggleSun.setChecked(true);
    } else if(nWeek == 2) {
        strWeek = "월요일";
        toggleMon.setChecked(true);
        toggleTue.setChecked(false);
        toggleWed.setChecked(false);
        toggleThu.setChecked(false);
        toggleFri.setChecked(false);
        toggleSat.setChecked(false);
        toggleSun.setChecked(false);
    } else if(nWeek == 3) {
        strWeek = "화요일";
        toggleMon.setChecked(false);
        toggleTue.setChecked(true);
        toggleWed.setChecked(false);
        toggleThu.setChecked(false);
        toggleFri.setChecked(false);
        toggleSat.setChecked(false);
        toggleSun.setChecked(false);
    } else if(nWeek == 4) {
        strWeek = "수요일";
        toggleMon.setChecked(false);
        toggleTue.setChecked(false);
        toggleWed.setChecked(true);
        toggleThu.setChecked(false);
        toggleFri.setChecked(false);
        toggleSat.setChecked(false);
        toggleSun.setChecked(false);
    } else if(nWeek == 5) {
        strWeek = "목요일";
        toggleMon.setChecked(false);
        toggleTue.setChecked(false);
        toggleWed.setChecked(false);
        toggleThu.setChecked(true);
        toggleFri.setChecked(false);
        toggleSat.setChecked(false);
        toggleSun.setChecked(false);
    } else if(nWeek == 6) {
        strWeek = "금요일";
        toggleMon.setChecked(false);
        toggleTue.setChecked(false);
        toggleWed.setChecked(false);
        toggleThu.setChecked(false);
        toggleFri.setChecked(true);
        toggleSat.setChecked(false);
        toggleSun.setChecked(false);
    } else if(nWeek == 7) {
        strWeek = "토요일";
        toggleMon.setChecked(false);
        toggleTue.setChecked(false);
        toggleWed.setChecked(false);
        toggleThu.setChecked(false);
        toggleFri.setChecked(false);
        toggleSat.setChecked(true);
        toggleSun.setChecked(false);
    }
}

 

 

아래 코드는 요일을 선택했을시 다른 요일 버튼은 비활성화 되는 코드입니다

 

[onCreateView 함수 코드]

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        v = inflater.inflate(R.layout.fragment_sleep, container, false);
        lineChart = (LineChart) v.findViewById(R.id.line_view);
        t_avg_hr = (TextView) v.findViewById(R.id.text_avg_hr);

        lineChart.setDrawGridBackground(false); //격자 구조
        lineChart.getDescription().setEnabled(false); //하단 description 표출 x

        todayDataSelect();


//        makechart();

        //토글 버튼
        toggleMon = (ToggleButton) v.findViewById(R.id.toggleMon);
        toggleTue = (ToggleButton) v.findViewById(R.id.toggleTue);
        toggleWed = (ToggleButton) v.findViewById(R.id.toggleWed);
        toggleThu = (ToggleButton) v.findViewById(R.id.toggleThu);
        toggleFri = (ToggleButton) v.findViewById(R.id.toggleFri);
        toggleSat = (ToggleButton) v.findViewById(R.id.toggleSat);
        toggleSun = (ToggleButton) v.findViewById(R.id.toggleSun);

        togglesetting();


        toggleMon.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                toggleMon.setChecked(true);
                toggleTue.setChecked(false);
                toggleWed.setChecked(false);
                toggleThu.setChecked(false);
                toggleFri.setChecked(false);
                toggleSat.setChecked(false);
                toggleSun.setChecked(false);

                monDataSelect();
//                makechart();
            }
        });

        toggleTue.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                toggleMon.setChecked(false);
                toggleTue.setChecked(true);
                toggleWed.setChecked(false);
                toggleThu.setChecked(false);
                toggleFri.setChecked(false);
                toggleSat.setChecked(false);
                toggleSun.setChecked(false);

                tueDataSelect();
//                makechart();
            }
        });

        toggleWed.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                toggleMon.setChecked(false);
                toggleTue.setChecked(false);
                toggleWed.setChecked(true);
                toggleThu.setChecked(false);
                toggleFri.setChecked(false);
                toggleSat.setChecked(false);
                toggleSun.setChecked(false);

                wedDataSelect();
//                makechart();
            }
        });

        toggleThu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                toggleMon.setChecked(false);
                toggleTue.setChecked(false);
                toggleWed.setChecked(false);
                toggleThu.setChecked(true);
                toggleFri.setChecked(false);
                toggleSat.setChecked(false);
                toggleSun.setChecked(false);

                thuDataSelect();
//                makechart();
            }
        });

        toggleFri.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                toggleMon.setChecked(false);
                toggleTue.setChecked(false);
                toggleWed.setChecked(false);
                toggleThu.setChecked(false);
                toggleFri.setChecked(true);
                toggleSat.setChecked(false);
                toggleSun.setChecked(false);

                friDataSelect();
//                makechart();
            }
        });

        toggleSat.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                toggleMon.setChecked(false);
                toggleTue.setChecked(false);
                toggleWed.setChecked(false);
                toggleThu.setChecked(false);
                toggleFri.setChecked(false);
                toggleSat.setChecked(true);
                toggleSun.setChecked(false);

                satDataSelect();
//                makechart();
            }
        });

        toggleSun.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                toggleMon.setChecked(false);
                toggleTue.setChecked(false);
                toggleWed.setChecked(false);
                toggleThu.setChecked(false);
                toggleFri.setChecked(false);
                toggleSat.setChecked(false);
                toggleSun.setChecked(true);

                sunDataSelect();
//                makechart();
            }
        });





//        return inflater.inflate(R.layout.fragment_sleep, container, false);
        return v;
    }

 

 

참고하면서 하시면 도움이 되실겁니다!

 

질문은 편하게 댓글 남겨주세요!

 

 

반응형

'앱 개발 > Java' 카테고리의 다른 글

[안드로이드] 서버에 데이터 요청 및 응답 (소켓 통신)  (0) 2022.03.29
[안드로이드] DB insert, select, delete 문 사용법 (간단한 예제 공유)  (0) 2022.03.25
[안드로이드] CircleProgressBar 그리기 (github 라이브러리 사용)  (0) 2022.03.02
[Android] DB데이터 차트 표출 - MPAndroidChart  (0) 2022.02.24
[안드로이드] 블루투스 어플 프로젝트 공유(아두이노 통신)  (3) 2022.02.21
'앱 개발/Java' 카테고리의 다른 글
  • [안드로이드] 서버에 데이터 요청 및 응답 (소켓 통신)
  • [안드로이드] DB insert, select, delete 문 사용법 (간단한 예제 공유)
  • [안드로이드] CircleProgressBar 그리기 (github 라이브러리 사용)
  • [Android] DB데이터 차트 표출 - MPAndroidChart
맨땅
맨땅
다른 개발자분들에게 도움이 되었으면 좋겠습니다
  • 맨땅
    맨땅에 코딩
    맨땅
  • 전체
    오늘
    어제
    • 분류 전체보기 (48)
      • 프로그래밍 지식 (1)
      • 즐거운 웹 개발 (7)
        • Setting (3)
        • 프로그래밍 (1)
        • HTML, CSS (1)
      • 앱 개발 (29)
        • Java (26)
        • Kotlin (0)
        • Setting (2)
        • 프로그래밍 (0)
      • AI (1)
        • Setting2 (0)
        • 프로그래밍 (0)
        • 크롤링 (1)
      • DB (9)
      • ---------------------------.. (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
맨땅
[안드로이드] 요일별 toggle button 만들기 - fragment + 해당 요일 가져오기
상단으로

티스토리툴바