앱개발(18)
-
C# 소켓 연결 여부 체크
C# 소켓이 프로그램시, Connected 속성으로 정확히 체크할 수 없는 경우에 다음과 같이 체크 가능하다 bool isConnCheck = !((_socket.Poll(1000, SelectMode.SelectRead) && (_socket.Available == 0)) || !_socket.Connected);
2022.05.27 -
[안드로이드] 탭 레이아웃 - 작성중
1. activity_main.xml - Layout : LinearLayout - orientaion : vertical 2. Containers > TabLayout을 붙여넣는다 - height : wrap_content로 변경 - 3개의 탭이 기본적으로 생성되어 있는데 각각의 텍스트를 '즐겨찾기', '노선', '정류장'으로 바꾼다 * 탭 레이아웃이 위로 올려붙는다 3. 탭 레이아웃 하단에는 FrameLayout을 붙인다 - id : container > 지금까지의 화면은 다음과 같이 표현된다 4. Fragment생성 1) Bookmark 2) 경로 3) StationFragment * 탭 관련 초기 코드 더보기 //선언 enum eFragment{ Bookmark, Route, Station, Fr..
2021.12.07 -
공공데이터를 이용한 앱 만들어보기(3) - XML 파싱 및 RecyclerView 표현
1. 클래스 생성(Station 정보) 더보기 public class Station { public String bstopid; public String bstopnm; public String arsno; public String gpsx; public String gpsy; public String stoptype; public void clear(){ bstopid = ""; bstopnm = ""; arsno = ""; gpsx = ""; gpsy = ""; stoptype = ""; } boolean checkRecvAllData(){ return bstopid.length() > 0 && bstopnm.length() > 0 && arsno.length() > 0 && gpsx.length()..
2021.11.29 -
공공데이터를 이용한 앱 만들어보기(2) - 데이터 요청 및 수신
* 데이터 송수신을 위해 Volley라는 라이브러리를 사용한다. - 스레드를 이용해서 그냥 만들어도 상관은 없다 1. 라이브러리 추가 1) File > Project Structure 메뉴 선택 2. Project Structure 창이 나타나면 Dependencies > app > '+' > Library Dependency 선택 3. Add Library Dependency 창이 나타나면 com.android.volly 입력하고 Search 버튼을 누르면 목록이 나오는데, 최신 버전을 선택 후 OK 버튼을 누른다 4. 추가된 volly가 목록에 있는지 확인 후 OK 버튼을 선택한다 * 참고로 build.gradle 에 volley가 추가 되어 있음을 확인 할 수 있다 5. Main Activity에서..
2021.11.27 -
[안드로이드] 권한 관련 코드들
1. Manifest.xml 1) 전화번호부 2. build.gradle dependencies { ----기존에 있던 목록-------------------------------------------- implementation 'com.github.pedroSG94:AutoPermissions:1.0.3' } 3. setting.gradle dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { ------기존에 있던 목록----------------------------------- maven {url "https://www.jitpack.io"} } } 4. ..
2021.11.23 -
공공데이터를 이용한 앱 만들어보기(1) - 공공데이터 신청 및 화면 구성
* 개발 도구 : 안드로이드스튜디오 Acrtic Fox(2020.3.1 Patch3) 1. 공공데이터 사이트 가입 - URL : https://www.data.go.kr/index.do 공공데이터 포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase www.data.go.kr 2. 데이터 신청 - URL : https://www.data.go.kr/data/15092750/openapi.do - "활용신청" 버튼을 눌러서 데이터 신청 - 신청이 승이되면 serviceKey를 부여받음 3. API 테스트 - 브라우저에서 다음의 url을 입력 테스트 - http:..
2021.11.22 -
[안드로이드] 탭 레이아웃과 중첩 fragment를 활용한 창 구성
1. MainActivity package org.hdongle.layouttest; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import com.google.android.material.tabs.TabLayout; public class MainActivity extends AppCompatActivity { TabLayout tabRoot; Fragment1 fragment1; Fragment2 fragment2; Fragment3 fragment3; Fragment4 fragment4; @Override protected void onCreate(Bundle savedInstanceState) { supe..
2021.05.14 -
Fragment를 이용한 sub화면 전환
1. Empty Activity 프로젝트 생성 2. 프로젝트에서 마우스 우클릭 > New > Layout Resource File > fragment_top.xml 입력 3. 2번에서 생성한 Layout 변경 1) Layout : Linear Layout(orientation : vertical) 2) 상단에 Plain Text 3) 하단에 Linear Layout (orientation : horizontal) - 버튼 5개 4. java class 추가 : TopFragment.java 5. fragment_bottom_all.xml Layout 생성 * TextView 추가 - Text : "전체화면" - TextSize : 30sp 6. 같은 방법으로 layout들을 추가한다 1) fragment..
2021.05.09 -
Fragment
1. Fragment 생성(MainFragment, MenuFragment) 2. 다음의 창이 나타나면 이름 입력(TestFrament => MainFragment) 3. MainFragment는 MainActivity의 xml에 바로 등록한다. MainActivity는 FrameLayout으로 변경 4. 각각의 fragment들을 다음과 같이 바꾼다 * fragment_main.xml * fragment_menu.xml 5. Fragment들의 java에 다음과 같이 코딩한다 *MainFragment.java package org.hdongle.fragment; import android.os.Bundle; import androidx.fragment.app.Fragment; import android..
2021.05.05 -
[안드로이드] Inflation을 이용한 sub화면 전환
1. Main Activity의 Layout을 LinearLayout으로 변경, orientation은 Vertical로 변경 2. 다음과 같은 구조로 컨트롤 추가 * LinearLayout(vertical) > LinearLayout(horizontal) > Button(id:btnView1, layout_width:0dp, layout_marginLeft:10dp, layout_marginRight:5dp, layout_weight:1, text:1번화면) > Button(id:btnView2, layout_width:0dp, layout_marginLeft: 5dp, layout_marginRight:5dp, layout_weight:1, text:2번화면) > Button(id:btnView1, ..
2021.05.01