Giter Club home page Giter Club logo

Comments (19)

euzl avatar euzl commented on August 10, 2024

7/9

  • 로그인, 메인 화면 구성
  • 키보드 줄 여러개 여부는 singleLine 사용하자 ← '민원접수'할 때 사용
  • 뭔가 안될 땐 logcat, debug 사용하자.

from khuhelper.

euzl avatar euzl commented on August 10, 2024

7/10

from khuhelper.

euzl avatar euzl commented on August 10, 2024

7/12

  • 충전소 세부사항 레이아웃 구성
  • 리사이클러뷰를 보는 중
  • 어떻게 구성하는게 좋을라나 ~~

from khuhelper.

euzl avatar euzl commented on August 10, 2024

7/13

from khuhelper.

euzl avatar euzl commented on August 10, 2024

7/14

  • 어제 만든 레이아웃에 맞춰서 액티비티전환정도만 되는 클래스까지 만듦
  • 토스트 메시지 띄우기
    Toast.makeText(this.getApplicationContext(), <넣을 string>, Toast.LENGTH_SHORT).show();
  • 클래스생성하면 제발 manifest에 등록하기!!
  • 카카오 지도 api를 사용하기 위해 개발자 등록을 했다.
    스크린샷 2020-07-14 오후 9 41 12
    아 뭔가 멋져....
  • 지도 연결 중! -> 따로 블로그 포스팅할 계획

자정이 넘었으니 14일은 여기까지

from khuhelper.

euzl avatar euzl commented on August 10, 2024

7/20

  • 카카오 지도 연결
    방법은 블로그에 포스팅함 ㅋㅅㅋ [Android] 카카오지도 연동하기
  • 지도 표시하는 코드 추가하고 빌드함 ! → 검정화면만 뜸ㅠㅠ
  • 검정화면만 뜨는 오류 해결
    안드로이드 - 다음API 지도 오류 해결 정리
    app key를 추가하기 위한 meta-data를 application안에 넣어줘야
    <application
        ...
        <meta-data
            android:name="com.kakao.sdk.AppKey"
            android:value="<native-app-key>"/>
    </application>
  • 앱 사용시에만 위치 정보에 액세스되도록 권한 수정
  • 애뮬레이터로 빌드 확인 → 진짜 안되네...
  • 타이틀바 없애기
    • styles.xml 에서 아래 코드 두 줄을 추가해서 성공!
    <resources>
        <!-- Base application theme. -->
        <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
            ...
            <item name="windowActionBar">false</item>
            <item name="windowNoTitle">true</item>
        </style>
    </resources>
    [안드로이드] 안드로이드 타이틀바, 상태바 없애기
  • 마커 추가 테스트
    일단 직접 입력하는 방식으로 마커를 하나 추가해보았다.
    Kakao 지도 API - Marker
  • 충전소 위치 등록 (마커표시) 시 문제점
    1. (위도, 경도) 형태로 입력해야 함 → 현재 엑셀에 있는 DB상으로는 도로명 주소... → 위도와 경도를 알려주는 지도는 구글맵.. → 1. (위도, 경도) 형태로 입력해야 함 → 현재 엑셀에 있는 DB상으로는 도로명 주소... → 위도와 경도를 알려주는 지도는 구글맵.. → 엑셀에서 자동으로 위치를 추출해서 좌표로 바꾸어 저장하는 프로그램을 짜야되나? 도로명주소 좌표변환 이라고 검색하니까 프로그램이 많이 뜬다! 활용하면 될 듯
    2. 마커 표시 1개 하는데 6줄의 코드를 작성해야 함 → DB에 장소를 저장해서 while문을 돌리거나 해결법이 필요함 → 암튼 DB를 사용해야됨 → 구글에서는 Room 이라는 DB를 SQLite 보다 권장하는 중. 서버에 연결할 수도 있고..? 근데 일단 로컬로 !!

from khuhelper.

euzl avatar euzl commented on August 10, 2024

7/30

from khuhelper.

euzl avatar euzl commented on August 10, 2024

8/1

  • 공공데이터 API 연결하기

    • 전기자동차 충전기 정보 조회 서비스, XML, REST 방식
    • 일반인증키(UTF-8)
  • SERVICE KEY IS NOT REGISTERED ERROR 에러 발생
    공공데이터포털 FAQ
    그러하다.. (1) URL 디코딩작업필요 (2) 발급받고 1시간 이후 사용
    일단 기다려보자 ~~
    기다려도 안 된다. URL 디코딩을 해주자..
    천상나타블로그 - URL인코더, 디코더
    위 링크에서 변환함. (%가 빠진 형태가 되면 성공)

  • 뭔가 된다 !!! (약 2시간 있다가 URL 디코딩한 거 씀)

  • 자바 코드 추가 (안스)
    [Android] 공공기관 데이터 포털 API 신청 + android xml 파싱
    이 블로그 보고 함! (거의 복붙..) 일단 연결이 된 것에 의의를 둔다.
    Image from Gyazo
    뿌듯

from khuhelper.

euzl avatar euzl commented on August 10, 2024

8/3

  • API에서 받아온 충전소들을 지도에 마커로 표시하기
    • 객체를 여러개 만들어서 각 충전소의 정보를 저장해야하나? 메모리 낭비느낌
    • 현재 화면에 보이는 지도 영역에만 마커가 표시되었으면!
  • 마커를 커스텀마커로 바꾸니까 표시되지 않는다. → png 이미지 사용하면 됨 → 화질구지인데.. 일단 다음에 생각하자.. (현재 이미지 크기 : 19*27)
  • 원하는 데이터만 파싱해오면 좋은데, 해당 api는 파라미터가 '서비스키'밖에 존재하지 않는다.. 따라서 특정 id로 찾을 수없으므로 내가 기록해두는 수 밖에 없다.
    → 8/1코드 참고해서 파싱해서 class에 저장! 그리고 다중마커로 띄우기
    (파라미터가 있는 경우) 보통 항목명=입력&항목명=입력 이런 방식인듯 예) addr=경기도&serviceKey="dfhsf"
  • 다중 마커 표시 성공
    처음엔 띄워지지 않아 당황했다. 정확한 좌표값을 넣으니 성공했음

from khuhelper.

euzl avatar euzl commented on August 10, 2024

8/4

  • 비동기로 api에서 데이터 받아와서 리스트에 저장 asyncTask 이용...

  • 리스트를 메인으로 넘길 방법을 고민하던 중 성규님께서 콜백을 사용하라고 조언해주셨다! 츄라이 고

  • 인터페이스, 콜백 공부
    안드로이드로 배우는 자바의 인터페이스 (콜백, 리스너, 옵저버)
    [AsyncTask] 비동기작업 - 쓰레드(Thread)
    1번 보고 listener구현 해보고 2번 보고 따라하면 콜백 끝 -!

  • Interface : 클래스가 반드시 구현해야 할 행동을 정의한 추상클래스

    • 구현 : 인터페이스에 정의된 모든 메서드를 구현해야 함!! implements 키워드 사용
      // interface (추상클래스)
      public interface Car {
      	public void move(int key); // 정의만!!
      
      // 구현
      public class Sportscar implements Car {
      	@Override
      	public int move(int key) {
      		key += 30;
      		return key;
      	}
      
      public class Minicar implements Car {
      	@Override
      	public void move(int key) {
      		key += 3;
      		return key;
      	}
    • 추상화 를 통해 다형성 구현 가능
    • 다형성 : 형태가 달라지는 것. 확장성 좋아짐. 결합도가 강하지 않은 프로그래밍 가능
      (위의 코드에서 Sportcar와 Minicar가 둘 다 Car 이라는 타입이고, move라는 메소드를 가지고 있지만 형태가 다르다.)
  • 콜백 구현..! 은 했는데, 파싱에서 에러가 발생했다.

    • There was an error: null : For input string: "37.571076"
    • 위도, 경도를 int 로 해놨는데 float였구나..?
    • There was an error: null : For input string: "GP190415"
    • 충전소ID가 int로만 구성된게 아니였구나..?
  • I/Choreographer: Skipped 45 frames! The application may be doing too much work on its main thread.

    • 이런 문구가 뜬다. 데이터 다 받아와서 표시하면 혹사긴 할듯 (근데 비동긴데..?)
    • 그래서 100개만 가져오게 수정
      • 잘 가져오긴 한다. (중복이 여러개인 이유는 원래 데이터가 중복되어있음)
  • 일단 10개만 받아오게 수정했는데, 리스트에 2개만 들어가 있음. 심지어 아무 정보도 들어있지 않다. 무슨일이지?

    • csList.add(chargingStation); 위치를 바꾸니까 개수는 맞는데 문제가 정보가 안 들어감 !!!!

      START_TAG → (TAG: item, 기타, 등등 ...) →END_TAG
      무조건 이 구조 !!
      따라서 잘 구성해 주지 않으면 매 순간 객체를 만들게 된다. 이전의 내 상황은 값 하나 들어갈 때마다 리스트에 추가된 듯?
  • 제대로 들어갔다!! 감동적

    함수로 뺀 다음 예외처리 해주었음

  • 또 문제 발생.. 리스트에 첫번째 객체가 null 이라서 마커표시할 때 에러발생!

    • tag가 item 일 때만 코드가 실행되도록!! → 해결됨🎊
    if (tag.equals("item")) {
        csList.add(setChargingStation());
    }
    • 진짜 뭘 사용할 때 자료 분석은 필수인 듯

from khuhelper.

euzl avatar euzl commented on August 10, 2024

8/12

  • 관리자 페이지 시작
  • 최적지분석 지도에 표시하기
  • 일단 데이터파일의 형태

스크린샷 2020-08-12 오후 4 22 37

  • 0811.json 으로 바꿔서 로컬(assets) 이용해서 파싱할 것!
  • json이 안 불러와지는것 같아서 프로그램이용해서 개행분리를 했더니 json으로 받아오긴 함!

JSON Formatter & Validator

  • 레퍼런스

https://lktprogrammer.tistory.com/175 - 기본적인 가져오기

https://blog.naver.com/PostView.nhn?blogId=qbxlvnf11&logNo=221432824912&categoryNo=44&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=postView
https://stackoverrun.com/ko/q/3081178 - 배열

  • 에러

스크린샷 2020-08-12 오후 6 41 21

- 배열→오브젝트 순이구나.. 맞추기 디게까다롭네
  • 동찬이꺼 표시할 페이지...

스크린샷 2020-08-12 오후 9 59 18

from khuhelper.

euzl avatar euzl commented on August 10, 2024

8/14

  • jsonㅇㅣ 왜 안열리나했더니... textview를 만든적이 없었다.

스크린샷 2020-08-14 오전 7 27 58

  • 아! "features"를 "Feature"라고해서 ㅋ.ㅋㅋ.ㅋㅋㅋㅋ ㅠ 허무해 맑은정신맑은코딩 필수

스크린샷 2020-08-14 오전 7 48 39

하나가 뭉텅이로 들어왔다. arr[0][0] = "3.234234, 3,4342" 요런식
아마 한번 더 분리를 해야겠지
ㅓㄹ 성공!!!!!

자바에서는 무조건

ArrayList<AnalyzePlace> analyzePlaces = new ArrayList<>();

이렇게 할당해놔야되구나..! 안그러면 null로인식
-> 기본 array가 아니라 ArrayLIst(자료구조)를 사용했기 때문!

데이터 싹 바뀌었고 받아왔음!

어우 피곤...

남은일

  • 다이얼로그 띄워서 상세정보 페이지
  • 동찬 layout 만들기
  • 민원 접수/ 확인 → json으로 저장

from khuhelper.

euzl avatar euzl commented on August 10, 2024

8/15

  • 최적지분석 final point에 따라 마커 색상 다르게 표시.
    • 국가에서 한 자료? 같은거보니까 보통 빨>주>노>초>파>남 등 무지개 순이다. 이걸 따라가는걸로

스크린샷 2020-08-15 오전 1 00 41

스크린샷 2020-08-15 오전 8 17 32

<activity android:name=".admin.PredictActivity"
    android:windowSoftInputMode="adjustResize" />
  • 동찬코드삽입

  • compile 'com.squareup.okhttp3:okhttp:3.6.0' 이걸 해줘야된다

  • json 파일 파싱하려 노력함..

  • edittext이용

  • 검색구현 string contains() 메서드 썼음

from khuhelper.

euzl avatar euzl commented on August 10, 2024

8/17

ㄷㅐ박... 안드로이드 라이프사이클의 중요성..!!
onResume을 이용해야된다. 다시 시작할때는...
약간 init기능 됨
쩐당

switch {
	case :
		<내용1>
		startActivity();
		<내용2>
		break;

위 코드에서 startActivity() 가 실행된다고 <내용2> 가 실행되지 않는게 아님.
무조건 <내용2> 까지는 실행되고 break되는 것..!!
그래서 파란색으로 바꾸는 코드를 <내용2>에 하면 액티비티가 변하기 전에 변했다.
따라서 onResume안에 파란색으로 바꾸는 코드했더니 시기좋게 딱딱!



릴리즈 완료! (v1.0.0)

스크린샷 2020-08-17 오전 6 52 16

스크린샷 2020-08-17 오전 6 56 05

develop → release/v1.0.0 → 태그 달아주고 → git push 를 master에 바로!

훌 끝났당!!

from khuhelper.

euzl avatar euzl commented on August 10, 2024

8/27

  • 알고보니 master가 아니라 develop에 머지했네... master에 머지해주었다.
  • firebase 연결시도중 !!

from khuhelper.

euzl avatar euzl commented on August 10, 2024

8/28

  • ripple 효과 커스텀!

  • DB연결

    • firebase 깃허브 예제 보면서 분석해보기로!
    • 처음 json 설계가 중요하다고 한다.

from khuhelper.

euzl avatar euzl commented on August 10, 2024

9/2

  • Firebase 연결
    • key-value (기본적으로 Map형태)
    • key값이 같으면 계속 값이 갱신된다. (새로 추가되지 않음)
    • child() 계속 붙여서 사용하면 중첩으로 하부를 만들 수 있다.
    • push() 를 사용해서 저장하면 타임스탬프값을 가지고 key를 자동으로 생성한다. 출력에서 child이벤트리스너는 여기에 사용하면 유용하게 데이터를 제어할 수 있다. → 목록 만들기에 유용

from khuhelper.

euzl avatar euzl commented on August 10, 2024

9/3

from khuhelper.

euzl avatar euzl commented on August 10, 2024

9/7

  • 데이터 불러오기

    • child("petition") 해서 불러와야 됨!
  • 그 내부 아이템을 가져올 때는

    • 안된거

      @Override
      public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
          Petition petition = dataSnapshot.getValue(Petition.class);
          petitionList.add(petition);
      }
    • 된거

      @Override
      public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
          for (DataSnapshot data : dataSnapshot.getChildren()) {
              petitionList.add(data.getValue(Petition.class));
          }
      
          // LinearLayout 사용
          recyclerView.setLayoutManager(linearLayoutManager);
          recyclerView.setAdapter(petitionAdapter);
      }

    차이가 느껴 지시는지?

  • 확인했으면 색 바뀌는거는 이제 리사이클러뷰 내에서 처리하도록!

    • 처리는 되는데, 액티비티 되돌아왔을 때 확인이 안됨 ㅠㅠㅠ

from khuhelper.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.