총 게시물 1,104건, 최근 0 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[강좌]

DoubleDrawer(4) - 소스 오류(아이콘 토글 문제) 수정, 깃허브 푸시 주의/[Android]

글쓴이 : 김병희라고요 날짜 : 2016-10-27 (목) 02:38 조회 : 1624
글주소 : http://www.androidside.com/B56/32561
 
  G마켓 토글
올 봄 쇼핑을 바꾸는 쇼핑! G마켓 웰컴 30%쿠폰, 매일 초강력 슈퍼딜! 토글
www.gmarket.co.kr
  토글, 옥션
가정의달 토글! 12%+15%+15%쿠폰증정+카드사 할인까지! 어서옥션!
www.auction.co.kr
  11번가 토글
카드사별최대15%할인, 무이자12개월, OK캐쉬백 적립! 토글.
www.11st.co.kr
신청하기


DoubleDrawer(4) - 소스 오류(아이콘 토글 문제) 수정, 깃허브 푸시 주의/[Android]

/ 2016.10.27. 최초 작성


전체 소스 : https://github.com/k8z7/DoubleDrawer/commits/master


이 연재 강좌를 지난 3회로 마무리하고, 깃허브에도 올린 직후에 조금 더 다듬다가 아이콘이 토글되지 않는 문제를 발견하였습니다.


1. 백업본에서 시작하여 하나씩 이식


이런 경우 이상이 없는 최신 백업파일의 압축을 풀고 그 이후에 변경된 내용을 하나(조금)씩 이식하면서 일일이 테스트합니다.


그러면 어느 코딩에서 문제가 발생했는지 금방 찾을 수 있으니까요.


2. 작업 과정


DoubleDrawer_02.zip 압축 풀어서 테스트 - 이상무.


위 DoubleDrawer_02 압축 푼 상태의 폴더 이름을 DoubleDrawer로 두고 한 단계씩 작업/확인 반복.


- 레이아웃 6개 파일(메인 외) 복사

- activity_main.xml 파일 덮어쓰기

- 멤버변수 몽땅 복사

- initView 메소드 분리/호출


- onBackPressed 복사

- Util.java 파일 생성

- openPage 메소드

- action_setSpeech => action_setting (메인 2, 나비 1)


- onCreate : DrawerLayout 타입선언 제거

- onNavigationItemSelected : 아래 한 줄 제거

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);


- openLayer : 1줄 추가(첫줄로)

        if (MainActivity.drawer.isDrawerOpen(GravityCompat.START)) { MainActivity.drawer.closeDrawer(GravityCompat.START); }


- openLayer, closeLayer 이사(유틸), 호출자 수정


<실행 이상무>


여기까지 아무 이상이 없이 잘 진행되었으며 남은 것은 거의 없습니다.


3. 이상 발견


- onOptionsItemSelected


이 메소드의 수정본으로 덮어쓴 후에 아이콘 토글되지 않는 문제가 발생하였습니다.


사실은 직전에 이미 눈치는 챘지만 ...


문제는 이 메소드가 아니라 Util.java 파일의 openPage 메소드에 있습니다.


가령

        if (id==R.id.action_bmfh) { MainActivity.inc_bmfh.setVisibility(View.VISIBLE); } else { }

=>

        if (id==R.id.inc_bmfh) { MainActivity.inc_bmfh.setVisibility(View.VISIBLE); } else { }


모양으로 수정되어야 하지만, 사실은 위 줄 같은 경우는 불필요하며 오직 아이콘 토글하는 줄만 남기면 됩니다.


끌줄에서 파라미터로 넘어온 뷰를 VISIBLE 설정하기 때문입니다.


4. 푸시할 때 주의


이런 경우에 지난 버전에서 시작하여 수정한 프로젝트를 무심코 온스테이지, 커밋, 깃허브에 푸시했다가는 로그/히스토리가 꼬일 수 있습니다.


소스트리를 유심히 보면 툴바 [풀] 아이콘 옆에 숫자가 보일 것입니다.


로칼 저장소는 버전 2 상태이고 리모트 저장소(깃허브)는 버전 3, 4 등 더 높은 버전이기 때문에 그렇습니다.


이 때 풀하고 푸시하는 방법보다, 필자는 다음과 같이 처리합니다.


- 프로젝트 폴더 이름을 바꿈


그러면 소스트리에 저장소 이름이 죽는데, 과감하게 지워버립니다.


- 깃허브 복제를 해 옵니다.


수정할 부분만 수정해서 다시 푸시합니다.


물론 수정할 내용이 많다면 위 방법이 바람직하지 않을 수도 있겠지요.


가능하면 약간씩 수정할 때마다 푸시하는 것이 관리하고 보완하기에 편하다고 느껴집니다.


5. 백업, 복제, 수정


폴더명을 DoubleDrawer_ok 안전하게 변경했습니다.


소스트리에 쓰레기 이름을 지우고, 새로 복제해 왔습니다.


1) openPage 수정


    // 페이지 레이아웃 열기

    static void openPage(View view) {

        // 서랍(drawer) 닫기

        if (MainActivity.drawer.isDrawerOpen(GravityCompat.START)) { MainActivity.drawer.closeDrawer(GravityCompat.START); }

        if (MainActivity.slider.getVisibility() == View.VISIBLE) { closeLayer(); }

        // 모든 페이지 닫기

        int id = view.getId();

        for(View page: MainActivity.views) page.setVisibility(View.GONE);

        // 아이콘, 기타 설정

        if (id==R.id.inc_search) { MainActivity.searchMenu.setIcon(R.drawable._search_on); } else { MainActivity.searchMenu.setIcon(R.drawable._search_off); }

        if (id==R.id.inc_explorer) { MainActivity.explorerMenu.setIcon(R.drawable._ex_on); } else { MainActivity.explorerMenu.setIcon(R.drawable._ex_off); }

        // 파라미터 페이지 열기

        view.setVisibility(View.VISIBLE);

    }


2) onNavigationItemSelected 수정


        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);


불필요한 줄 삭제하였습니다.


3) menu_navi.xml 수정


내비게이션 메뉴 아이템 타이틀을 조금 다듬었습니다.


6. 푸시


20161027 DoubleDrawer(5) - 소스 오류(아이콘 토글 문제) 수정, 깃허브 푸시 주의/[Android]


전체 소스 : https://github.com/k8z7/DoubleDrawer/commits/master





추천 버튼을 클릭하면 추천한 자와 추천받은 자 모두에게 포인트가 지급됩니다.

이전글  다음글  목록 글쓰기

총 게시물 1,104건, 최근 0 건 안내 RSS
번호 분류 제목 글쓴이 날짜 추천 조회
1104 강좌  100 Days Google Dev, 3: Google Play Services 7.5 StanleyKou 01-24 0 431
1103 강좌  100 Days Google Dev, 2: The Magic of LRU Cache StanleyKou 01-20 0 486
1102 강좌  100 Days Google Dev, 1: Android Design Support Library 2 StanleyKou 01-18 0 555
1101 TIP&TECH  리스트뷰에서 스위치,체크박스사용시 4 에찌 05-08 3 1824
1100 TIP&TECH  뷰(RecyclerView/...)에 Max Height 주기/[Android] 김병희라고요 04-26 0 1565
1099 TIP&TECH  TabLayout ClickEvent 에찌 04-21 0 1419
1098 TIP&TECH  현재 사용하고 있는 어플 foreground인지 backgroun… 4 에찌 04-14 1 2142
1097 TIP&TECH  안드로이드 Drawble 에 해상도 마다 이미지를 … 1 에찌 04-14 0 1516
1096 TIP&TECH  fragment 에서 ButterKnife 사용 시 resource가져올 때… 1 에찌 04-12 0 1195
1095 TIP&TECH  Youtube 및 facebook 동영상 업로드 할때 1 희망과꿈을 03-28 0 1539
1094 TIP&TECH  google service lib 가져올 때 3 에찌 03-20 3 1636
1093 소스코드  CentralRV 프로젝트 - RecyclerView 가로/세로 가운… 1 김병희라고요 01-30 1 2857
1092 TIP&TECH  번개검색 시스템/[Android] 2 김병희라고요 12-29 2 2188
1091 TIP&TECH  RecyclerView 특정 포지션으로 스크롤 - smoothScroll… 1 김병희라고요 12-12 1 2053
1090 강좌  왕앱따 107. 자바/C++ 파일읽기 속도 비교/[Androi 김병희라고요 11-26 0 2205
1089 강좌  왕앱따 106. C++ 동영상 강좌/[Android] 김병희라고요 11-23 0 2570
1088 소스코드  AOSP용 한글 키보드 입력키 엘카이저 11-17 1 2332
1087 강좌  addDrawerListener, setDrawerListener(deprecated)/[Android] 김병희라고요 11-02 2 2682
1086 강좌  왕앱따 103. 아이콘 반복클릭 테스트/[Android] 김병희라고요 11-01 0 2030
1085 강좌  왕앱따 100. 안드로이드 왕초보의 앱개발 따라… 김병희라고요 10-29 0 2461
 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  다음  맨끝
 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기