1 – Android Jetpack Navigation with Kotlin

안녕하세요, 모두 Martin Baraya입니다 오늘은 Android에 대해 배울 것입니다

제트 팩 내비게이션 먼저 제트 팩 내비게이션이란 무엇입니까? 한 화면에서 다른 곳으로 이동하는 것과 같이 앱 주변을 탐색하는 데 사용되는 제트 팩 내비게이션 또 다른 그것은 안드로이드 개발의 근본적인 부분이며 그것을하는 데 사용됩니다 하단 탐색과 같은 버튼을 클릭하는 것보다 더 복잡한 작업 제트 팩 내비게이션 작동 방식에 대해 3 가지 주요 사항을 더 이해합니다 네비게이션 구성 요소의 일부로 네비게이션 그래프, nav 호스트 조각과 탐색 컨트롤러 그래서 안드로이드 jetpack을 만들기 시작하자 안드로이드 스튜디오에서 탐색하고 안드로이드 문서 노트에 의존한다면 Android Studio에서 탐색을 사용하려면 Android Studio를 사용해야합니다 3 단계 이상의 3 단계부터 시작하자 그래서 우리는 비어있는 활동을 가진 새로운 프로젝트를 시작할 것입니다

제트 팩이나 뭐든간에 당신이 실제로 그것을 선택할 수있는 위치를 선택할 수 있습니다 바탕 화면에 jetpack이라는 빈 폴더가 있고 우리는 Kotlin으로 시작할 수 있습니다 완료 후에 API 레벨을 최소로 선택하고 gradle은 빌드하는데 약간의 시간이 걸릴 것입니다 처음부터 그래 슬레 빌드가 완료되었습니다 우리는 단편이 필요합니다

단편을 선택할 수 있습니다 우리는 그것을 주요 조각이라고 부를 수있는 뷰 모델을 가진 조각 Kotlin과 잘 맞았 어 그래서 그 후에 우리는 두 조각 더 필요합니다 그래서 우리는 빈 조각을 선택하려고합니다 이 두 상자의 선택을 취소하십시오

그냥 끝내 줘 우리는 두 번째 조각을 위해 똑같은 작업을 할 것입니다 공백, 두 번째 조각 끝 실제로 우리는 메인 프래그먼트의 주요 활동과 첫 번째 프래그먼트 및 두 번째 프래그먼트로 작업 할 수있다 조각하지만 우리는 주보기 모델을 사용하지 않을 것입니다 gradle 종속성을 가지고 있으므로이 두 줄의 코드를 추가 할 것입니다

nav 버전을 사용하면 지금 동기화를 선택할 것입니다 괜찮아 그러면 우리는 철판 최상위 레벨을 선택하고 allprojects 내부에서 이 버전의 코드 안드로이드 지원 버전을 추가하여 버전 28을 지원하십시오 지금 동기화 선택하기 그래서 지금 우리는 네비게이션 그래프를 만들 것입니다이 창을 닫으십시오 그래서 내부 자원과 레이아웃, 우리가 할 주요 활동 XML 파일 내부 그래프 작업, 먼저 텍스트보기를 삭제합니다

우리가 필요로하지 않기 때문에 우리는 서랍 레이아웃을 추가 할 것입니다 우리가 선택할 부모님은 부모님과 일치합니다 우리는 그것의 ID를 추가 할 수 있습니다, 우리는 컨테이너 이름을 이제 알았습니다 우리는 서랍 안쪽에 tage 조각을 추가 할 수 있습니다 형세 alt 키를 누르면 ID가 추가되고 nav 호스트이므로 Android 이름을 추가합니다

프래그먼트 호스팅을위한 프래그먼트 (fragment)와 우리는 제로 (dp)와 함께 너비와 하이를 할 수있다 그리고 제약 레이아웃을위한이 위치는 바로 지금이 것을위한 것입니다 우리가 선택할 수 있도록 리소스 폴더 안에 탐색 그래프 탐색을 생성합니다 새로운 Android 리소스 파일에서 리소스 유형 탐색을 선택해야합니다 nav_graph라는 이름을 짓고 ok를 누릅니다

그리고 그들의 디자인 부분에 가자 이 테이프에서 우리는 다음과 같은 주요 조각을 선택할 수 있습니다 우리는이 두 줄을 추가 할 수있는 조각 안의 주된 활동으로 되돌아 간다 기본 탐색 호스트의 코드 = true 및 탐색 그래프, 경로입니다 이것은 우리가 네비게이션과 네비게이션 그래프 안에서 만든 네비게이션 그래프입니다

주요 활동으로 전환해야합니다 주요 액티비티에는 서랍 레이아웃이 필요합니다 그래서 우리는 서랍 레이아웃을위한 변수를 만들 것입니다 그런 다음 Oncreate 메서드에서 조각을 찾기 위해 변수가 필요합니다 ID 그래서 우리는 그 이름을 지원하는 조각과 동등한 가치로 호스트 할 가치가있다

관리자가 ID로 조각을 찾으면이 ID입니다 nav 호스트 조각에 대한 이름과 형변환은 null을 받아 들일 수 있습니다 호스트에서 컨트롤러를 탐색하고 호스트에서 컨트롤러를 탐색 한 다음 네비게이션 바를 제어하고 우리가 그것을 연결해야하는 서랍 레이아웃 이 ID 컨테이너와 연결된이 drawerlayout ID this this 이제 우리는 탐색 UI를 사용하여 탐색 컨트롤러와 서랍을 연결합니다 작업 표시 줄, 설정 작업 표시 줄 탐색 컨트롤러 이것은 활동을 나타냅니다 이 변수에 대한 컨트롤러와이 변수에 대한 서랍을 탐색하면 ctrl 키를 눌러 덮어 쓰기 메소드를 만들겠습니다 이 방법과 우리는 사용자가 뒤로 버튼을 누른 다음 반환 값을 탐색 UI로 변경합니다

서랍,이 서랍을 탐색하고 해당 서랍의 활동 ID를 처리합니다 메인 프래그먼트 이제 탐색 그래프 탐색으로 전환합시다 먼저 조각 두 개를 추가하고 두 번째 조각을 추가합니다 두 번째 조각이므로 탐색 그래프에서 그래픽을 만들 수 있습니다 이 좋은 것을 사용하여 연결 액션, 위대한 생각에 대해 우리는 하나의 조각에서 연결할 수 있습니다 다른이 ID를 사용하여이 작업 ID를 사용하여 연결할 수있는이 작업 ID 한 조각에서 다른 조각으로 이제 주 프래그먼트 내부의 디자인 파트로 전환 해 보겠습니다

버튼이 두 개의 버튼 사이에 연결이 두 버튼을 사용하여 이제 우리가 할 주요 조각 안의 주요 조각으로 바꾸자 onView라는 create 메소드를 덮어 씁니다 그리고이 방법은 단편들 사이를 연결하는 데 사용되었고, 그런 다음 set onclicklistener와 같은 단편과 버튼을 연결하면 펀드를 사용합니다

버튼 ID 및 행동 ID가있는 내비게이션으로 ID별로보기 여기 네비게이션,이 쪽 우리는 이것을 바꿀 필요가있는 두 번째 버튼에 대해 동일한 작업을 수행 할 수 있습니다 button2를 클릭하면 액션 메인 프래그먼트 – 제 2 프래그먼트 그건 사실 우리가 거의 마지막에 끝났어 우리가 탐색 그래프를 살펴보고 메인 라벨의 라벨을 바꿀 거라고 생각해 원하는 집이나 원하는 물건과 첫 번째 조각, 두 번째 조각 텍스트 첫 부분을 바꿀거야 텍스트를 원하는대로 변경할 수 있으므로 첫 번째와 두 번째와 같이 만들 수 있습니다

조각 우리는 텍스트를 두 번째로 변경하려고합니다 첫 번째 및 두 번째 조각에 디자인 첫 번째 조각을 위해 우리는 같은 디자인을 추가 할 수 있습니다 두 번째 조각도 마찬가지입니다 텍스트 크기를 텍스트 스타일에 추가하기 만하면됩니다 이 물건이 이것과 그것 인 것 인이 재료 이제 우리는 android studio 에뮬레이터를 사용하여 테스트 할 것입니다

첫 번째 조각을 선택하면 첫 번째 조각이 첫 번째 조각으로 이동합니다 두 번째 조각은 두 번째 조각을 선택합니다 시청 해주셔서 감사합니다

한글자막) 데레스테 – 나, 고물 안드로이드 アタシポンコツアンドロイド

「나 고물 안드로이드

주인님 좋 아」 두근두근 사랑해버렸어 좋아좋아 좋아해 주인님 (셀룰로이드 안경이 러블리) 가정부 안예쁜로이드가 사랑에 빠지다니 그럴리가 (당신은 아마 깨닫지 못하겠지) 두근해 버린 그순간 무언가 시작된거야 고물이 된 내 몸이 이제 곧 터질 것 같아 규잉! 근질근질근질근질 두근두근! 맨 몸이 되어버릴까? (되버려!) 내 심장 보여줘버릴까? (보여줘!) 태어난 직후의 쥬얼은 핑크 회로는 이미 진작 불타버렸어! (퍼엉!) 인간이 되어버렸을지도? (깜짝!) 미라클이란게 이런 걸지도? (츄루루루루) 오늘부터 성가시게 사랑하는 여자애랍니다! 짠짠! 맨 몸이 되어선 안되겠지? (안돼안돼!) 내 심장 보여주는건 좀 징그럽겠지? (츄루루루루

) 오늘부터 부조리한데 큐트한 여자애랍니다! 짠짠! 여자애랍니다! 짠짠! 짠짠! 짠!

안드로이드 코딩습관 #1 – 코딩, 생각부터 정리하자!

코딩을 배우려고 할 때 무작정 컴퓨터를 잡고 예제 부터 따라 하지 마세요 안녕하세요 코딩 습관의 코딩 메이트 디모 입니다 여러분이 늘 쓰시는 스마트폰에는 많은 앱들이 깔려 있죠 한번쯤 자신만의 앱을 만들고 싶다는 생각 해본 적 없나요 하지만 처음 접한 분들은 코딩 관련한 책만 봐도 나와는 멀게만 느껴지고 외계어 같은 단어들은 전문가들만 을 위한 것 같죠 그래서 처음 본 사람에게는 암호 같은 얘기만 가득 있는 것처럼 느껴질겁니다 이제부터 따라하실 코딩 습관 의 첫 컨텐츠는 코딩을 전혀 몰라도 하나하나 따라하시면서 시작할 수 있는 안드로이드 앱 만들기 프로젝트, 안드로이드 습관입니다 안드로이드 앱 제작의 기본 지식부터 간단한 안드로이드 앱을 하나 만드는데 까지 코딩 아싸도 인싸 될 수 있는 꿀 팁들을 하나하나 차근차근 이 알려드립니다 코딩 순간에 컨텐츠를 쭉 따라 오시면 어느새 여러분도 스스로 만든 앱 하나 정도는 가질 수 있게 되실겁니다 그럼 한 번 가볼까요 디모와 함께 렛츠고! 스마트폰도 작긴 하지만 pc 와 같은 일종의 컴퓨터입니다 우리가 하려는 코딩 이라는 작업은 이 컴퓨터에게 사람이 하는 일을 대신 시키려는 과정이죠 그렇다면 컴퓨터에게 일을 시키려면 무엇부터 해야 할까요 일단 우리는 간단한 주소록을 만들어보면서 같이 과정을 생각해 봅시다

먼저 기능과 구성부터 정해야겠죠 여기서 잠깐! 코딩을 배우려고 할 때 무작정 컴퓨터를 접고 예제 부터 따라하지 마세요 나중에 자신만의 앱을 만들려면 생각하는 과정이 꼭 필요합니다 일단 처음에는 종이에 차분하게 기능과 구성을 적어보세요 팁을 드리자면 대부분의 컴퓨터를 만들 때 기능은 화면 단위로 정의 하는게 가장 좋습니다 그럼 주소록에는 어떤 화면들이 필요할까요 아주 간단한 주소록 이라면, 개인별로 데이터를 입력할 수 있는 화면, 그리고 그 데이터를 조회하는 상태화면, 데이터들을 목록으로 볼 수 있는 목록화면이 필요하겠죠 그 외에도 개별 화면이 따로 없는 기능들도 있을텐데요 이는 진행하면서 설명드리겠습니다 이렇게 오늘은 앱을 만드는데 시작이 될 수 있는 내용들을 같이 알아보았습니다 오늘의 키 포인트는 두 가지! 사람이 할 일을 컴퓨터에게 대신 시키는 것이 코딩 이라는 점 따라서 코딩을 하기 전에 컴퓨터에게 시킬 일을 정리해야 한다는 것을 명심하세요

다음 시간에는 주소로 데 필요한 3가지 화면을 직접 구성해 보며 화면 구성을 안드로이드로 구현 할때 어떤 요소가 필요한지를 가볍게 알아보겠습니다 구독과 좋아요 눌러주세요

#4 – Reset password in Firebase Authentication in Android using Android Studio – Kotlin

얘들 아 CodeAndroid의 Vignesh 이 비디오에서는 "Firebase에서 잊어 버린 비밀번호를 재설정하는 방법" 이전 자습서에서는 사용자 생성 방법 자격증 명으로 로그인 암호 변경 이제 보게 될 것이다 이전 암호를 몰라도 암호를 다시 설정하는 방법 사용자가 자신의 암호를 모른다면 그럼 그는 로그인 할 수 없다

이때 비밀번호를 재설정하려고합니다 로그인 버튼 아래에 암호 분실 버튼 추가하기 버튼의 텍스트를 "비밀번호 분실"로 설정 나는 모든 텍스트를 대문자로하고 싶지 않다 그래서 textAllCaps를 false로 설정하십시오 우리는 화면의 전체 너비에 걸쳐 버튼 적용 범위를 원하지 않습니다 그래서 너비를 "wrap_content" 또한, 우리는 화면의 오른쪽에있는 버튼을 원한다

따라서 layout_gravity를 끝으로 설정하십시오 마지막으로 코드를 재정렬하고 ID를 다음과 같이 설정합니다 "btn_forgot_password" 또한 16dp로 martingTop을 추가하십시오 이 버튼을 클릭하면 대화 상자를 표시하고 싶습니다 그것을 사용하여 사용자의 이메일 주소를 얻고 재설정 된 비밀번호 메일을 보냅니다

단추에 대한 청취자를 클릭하도록 설정 이 대화 상자에는 레이아웃 파일이 필요합니다 따라서 "dialog_forgot_password"라는 새로운 레이아웃 파일을 만드는 것입니다 레이아웃 파일에는 하나의 EditText 만 있습니다 EditText로 루트 요소를 변경했습니다 중간에있는 EditText에서는보기를 원하지 않습니다

그래서 같은 줄에서 끝내기 높이를 "wrap_content"로 변경하고 id를 "et_username"으로 지정합니다 여백 시작 및 종료를 16dp로 추가 이제이 레이아웃 파일이 대화 상자로 표시됩니다 AlertDialogBuilder 객체를 생성하려면 빌더라는 값에 저장 대화 상자의 제목을 "비밀번호 찾기"로 설정하십시오

레이아웃 layoutInflater를 사용하여 레이아웃 파일 팽창시키기 보기라는 값에 저장 그런 다음 setView 메소드를 사용하여 대화 상자보기로보기를 설정합니다 대화 상자에는 두 개의 버튼이 필요합니다 양수 버튼과 음수 버튼 따라서 빌더에 대해 긍정적 인 버튼을 설정하고 텍스트를 '재설정'으로 전달하십시오 네거티브 버튼에 복사하여 텍스트를 닫기로 변경 양수 버튼을 클릭하면 EditText에서 값을 읽어야합니다 따라서 뷰 객체에서 findViewById를 호출하여 EditText의 객체를 생성합니다

여기 전자 메일 주소의 유효성을 검사해야합니다 그래서 forgotPassword라는 함수를 생성합니다 해당 메소드가 EditText를 매개 변수로 전달하는 경우 메소드 내에서 유효성 검사를 할 수 있도록 전자 메일 유효성 검사를 복사하고 여기에 붙여 넣습니다 우리는 검증을 위해 "username"을 사용할 필요가있다 오류의 경우 오류를 표시 할 필요가 없습니다

그래서 나는 그것들을 제거하고있다 사용자 이름이 유효하면 재설정 된 비밀번호 메일을 보내야합니다 Firebase 인증에서 "비밀번호 재설정 메일 보내기"부분을 볼 수 있습니다 그래서이 코드를 복사하여 여기에 붙여 넣습니다 emailAddress의 경우 이메일 주소를 전달해야합니다

사용자 이름에 입력 된 EditText 작업이 성공하면 "이메일 전송 됨"으로 표시됩니다 마지막으로 빌더 객체에서 show 메소드 호출 대화 상자가 사용자에게 표시됩니다 이제 응용 프로그램을 시작합니다 응용 프로그램의 DashboardActivity로 이동하는 것을 볼 수 있습니다 tho LoginActivity (으)로 이동하려면 응용 프로그램을 제거하고 다시 시작합니다

잊어 버린 암호 버튼을 볼 수 있습니다 버튼을 클릭하면 대화 상자가 나타납니다 이메일 주소를 알려 드리겠습니다 '재설정'버튼을 클릭하면 축배가 '이메일 전송 됨'으로 표시됩니다 이메일을 열어 보겠습니다

"비밀번호 재설정"에 대한 메일을 볼 수 있습니다 메일을 열고 비밀번호 재설정 링크를 클릭하십시오 내 새 암호를 "123456" 이제 자격 증명으로 로그인하려고합니다 우리가 우리의 어플리케이션에 로그인하는 것을 볼 수 있습니다 이렇게하면 사용자 비밀번호를 잊어 버렸을 때 재설정 할 수 있습니다

이 비디오 녀석을위한 전부입니다 이 비디오가 마음에 드시면 엄지 손가락을주세요 나를 후원하고 싶다면에서 후원자가되어 그렇게 할 수 있습니다 wwwpatreon

com/CodeAndroid 너가 좋아하길 바래 내 다음 비디오에서 뵙겠습니다 좋은 하루 되세요

Multiple Items in Listview (RecyclerView) in Android Studio – Part 5

안녕 모두, 내 이름은 Oum Saokosal입니다 우리는 안드로이드 RecyclerView에서 우리의 교훈을 계속할 것입니다

우리는 안드로이드 RecyclerView MySQL 데이터베이스에 연결에 대해 얘기하고 우리는 Volley와 PHP를 거친 다음 PHP가 MySQL에 연결하고 이전 비디오, 우리는 Volley와 Part 1, Part 2, Part 3, 우리는 RecyclerView에 대해 이야기했습니다 자, 이제부터 PHP에서 데이터를 얻는 방법에 대해 계속하겠습니다 사실, 우리는 PHP와 MySQL의 코드에 대해 조금 이야기했습니다 이것은 내 YouTube 채널, Facebook, Twitter 및 github입니다 좋아요, 그래서 이것은 우리가 이야기 할 부분입니다

그리고 이것은, 당신도 마찬가지입니다 웹 서버로 이동하여 데이터베이스 루프백에 연결하고 다시 보내면 우리는 Volley에 대해 이야기합니다 이미 알았습니다이 동영상에서 StringRequest에 대해 이야기하겠습니다 좋아, 그리고 마지막으로 할 일은 JSON 텍스트를 ArrayList로 변환하는 것이다

자, 안드로이드로 돌아가 보자 우리는 MySingleton을 가지고 있습니다 좋아요이 클래스는 요청보기를 여기에서 얻을 수있는 클래스입니다 전장에서 지휘관 한 명만 갖고 싶기 때문에

우리는 많은 지휘관을 갖고 싶지 않으므로 이제 우리 데이터베이스를 이렇게 확인해 보겠습니다 그리고 데이터베이스를 보자 이것은 JSON 일 뿐이며 고객 / 제품 내부의 PHP에서 가져 왔습니다 Part 4에있는 이전 부분으로 돌아 가라 그러면 소스 코드를 다운로드 할 수있다

이전에, 아마도 나는 아직 그것을 지퍼로 열지 않았을 것입니다 그래서 계속하기 전에 그것을 할 수있는 좋은시기 일 수 있습니다 괜찮아 나는 그 일을 잊어 버렸다 그래서 복사 만하고, 데이터베이스 일 수도 있고, 고객과 수출 일 수도있다

나는 그 일을 잊어 버렸으므로 지금은 그것을 볼 좋은 시간이다 파일이 많이 있지만, 그 중 일부만 있으면됩니다 알겠습니다 그러면 우리는 그것을 넣을 것입니다 여기에서는 반드시 열어서 웹 서버의 적절한 폴더에 넣으십시오

괜찮아 당신은 그것을 가져 오는 법을 알고 있습니다, 그리고 이것이 코드이고 당신이 원한다면 그것을 바꿀 필요가 있습니다 데이터베이스 이름, 알았어, 암호 또는 기타를 변경하려면, 이것은 전형적인 코드 일뿐입니다 데이터를 읽을 수 있습니다 나는 그것을 조금 설명 할 것이다 그러나 그렇게 어렵지는 않다

단지 그것을 따라 가라 좋아요, 그리고 나서 압축해야합니다 압축하십시오 좋아, 이걸 보니 업로드 할게, 알았어 이제 우리 수업을 계속하자

우리가 사용할 데이터베이스는 고객이고 테이블은 제품이므로 우리는 테이블을 나타내는 클래스를 만들거나 다른 클래스를 만들 것입니다 클래스, 나는 그것을 제품이라고 부르겠다 알았어 직렬화 가능하며 현재 공용 클래스 Product는 Serializable { public int pid; public string name; public int qty; 공개 더블 가격; } 플로트가 그런 식으로 이루어지기 때문에 플로트를 사용해서는 안됩니다 원하지 않습니다

그런 식으로 사용하십시오 따라서 double을 사용하십시오 공용 문자열 image_url; user_ID를 사용하면됩니다 사실, 당신이 잠그면, A 사용자, 그 다음엔 사용자 A의 일부 항목을 표시하려고하지만이 자습서에서는 그렇게하지 않을 것이므로 당신이 그것을 사용하든 원하지 않든, 실제로는 사용하지 않을 것입니다 그런 식으로 넣어

자, 이제 ItemAdapter가 item을위한 것이므로 여기서는 사용하지 않을 것입니다 다른 하나를 만들겠습니다 ProductAdapter입니다 코드가 매우 비슷하기 때문에 그냥 코드를 복사하면, 여기에서 올거야 그럼 내가 바꿀거야, 그래서 이건 ProductAdapter와이 제품은 여기에 동일해야합니다

예! 그런 다음 ViewHolder가 필요합니다 이 네 가지 항목에서 그것은 제품이므로이 제품입니다 나는 이것도 바꿀 것입니다이 것 우리는 이것을 바꿀 것입니다

먼저 삭제하겠습니다 혼동하고 싶지 않습니다 이건 어쩌면 당신 ______과 그럼 또 다른 레이아웃이 필요합니다 레이아웃이 이미 완료되었으므로 복사하여 붙여 넣습니다 당신이 이해하지 못하는 경우를 대비해서, 그 상황 뒤에있는 상황을 알기를 바랍니다

파트 1, 2, 3을 볼 시간이 필요합니다 왜냐하면 나는 같은 시간을 낭비하고 싶지 않기 때문입니다 이 비디오에서 다시 한 번, 이제 우리는 이미 8 분 안에 있습니다 그래서,이 하나는 CardView, 내가 제품으로 변경됩니다 그리고 어쩌면 내가 이름을 사용하려면, 가격은 품질이 그것을 필요로하지 않기 때문에, 우리 주식의 양은 필수적이며, 그러나 단지 이름이 붙여지고, 상금과 이미지가 그 것이다 이건 이미지이고 괜찮아요

아마 다른 이름이 필요할 것입니다이 이름은 이름입니다 네,이게 맨 위에 있거나 뭔가있을 거예요 이전 것을 확인하겠습니다 어쩌면, 우리는 이것을 시도 할 것입니다

예, 예, 괜찮습니다, 예! 이걸 제가 말하고 싶은 것은 이미지뿐만 아니라 나는 그것을 끌고 싶다 ' 끔찍한 음! 좋지 않아 알았어, 내가 해줄 께

나는 그것을 지우고 싶다면 그냥 지우십시오 좋아, 이제 너는 300을 가지려고하고 나면 이미지에서 가지고 싶다 그래서 소스를 넣는다 여기서 안드로이드 drawable / pp는 여기에있는 이미지이고 scaleType은 centerCrop입니다 좋아, 이건 200이 될거고 우리는 또 다른 _____을 쓸거야, 그럴 수있어? 예, 여기가 텍스트 이름이고 다른 가격을 원합니다

이제 자동으로 추가 된 속성과 같은 항목이 있기 때문에 더 좋습니다 나는 그것이 무엇인지 잊었다 그래서 이름을 바꾸어 봅시다 IvImageURL이 될거야, 맞아! 이 하나는 tvName과 tvPrice입니다 우리는 이것을 바꿀 것이기 때문에 아래 레이아웃이이 것입니다

이건 같은,이, 그리고 한 가지 더, 그것은 항상 색상, 문제는 기본 색상이 표시되지 않으므로 여기서 색상을 사용하겠습니다 만약 당신이 그것을 사용하고 싶다면, 당신도 알다시피, [우물 우물쭈물 소리]처럼 16 진수 색상으로도 괜찮습니다 이제 하나의 이미지와 두 개의 텍스트 상자 유형보기가 있습니다 자, 이제 우리는 ProductViewHolder를 만들려고합니다

그래서 CardView 이제는 cvProduct 및 IvImageURL, tvName 및 TV 가격 알았어 그래서 이것은 제품에 대한 ViewHolder입니다 그런 다음 항목이 아닌 여기에 제품이 필요합니다 그래서 여기에도 제품이 필요합니다

좋습니다 만약 굴절시키고 싶다면 그냥 이런 제품으로 바꾸십시오 이건 아직 바뀌지 않았어, 알았어! 이제 새로운 레이아웃을 여기에 부풀려 야합니다 product_cardview_layout입니다 우리가 방금 만든거야, 알았어

이제는 이걸 제외하고는 괜찮아 보입니다 우리는 뭔가를 여기서 묶을거야 그래서 처음에는 텍스트가 더 낫다 그래서 우리는 여기서 제품을 얻을 것입니다 그리고 그것은 무엇입니까? 여기에있는 제품들과 어떤 위치에서, 이 제품 및 홀더 다음 텍스트를 이름에 넣을 수 SetText 이런, 제품 및 이름

한가지 더 가격은이 가격은하지만 가격은 두 배입니다 맞아요 여기에 문자열, 그리고 다시 피카소 알았어 Picasso

width (context) load (productimage_url) placeholder (Rdrawable

pp) error (androidRdrawablestat_notify_error)

into (holderivImgUrl); ViewHolder 측면입니다 좋습니다 이제 좋습니다 자, 이제 싱글 톤, 제품 클래스 그리고이 하나의 아이템을 가지고 있습니다

그러나 우리는 그렇지 않습니다 데이터를 가지고있어, 알았어, 우리는 더 이상 아이템을 사용하지 않을 것이다 더 나은, 그리고이 하나 이제 나는 use을 사용할 것이다 ArrayList <product> ProductList = getDataFromServer (); 우리가 할 수 있을까요? 나는 우리가 싱글 톤을 사용할 것이기 때문에 우리가 할 수 있다고 생각하지 않는다, 아마 우리는 그것을 조금해야만한다

나중에,하지만 이걸 끝내자 이 항목은 더 이상 항목이 아닙니다 그게 제품이야, 알았어 이제 우리가 얻고 자하는 데이터는 여기에서 나온 것이 아니고, JSON의 웹에서 온 것입니다 그런 다음 여기에서 발리 (Volley)를 사용할 필요가 있습니다

그러면 우리가 서버에서 얻을 수있는 것입니다 이제 RecyclerView는 괜찮아 보이지만 Volley를 사용해야하므로 호출해야합니다 여기에 StringRequest가 있고 StringRequest에는 네 개의 매개 변수가 있음을 기억하자 메소드, URL, 응답 및 오류 (좋아, 새로운 StringRequest, 요청 방법 및 사용자) 단지 데이터를 얻고 싶습니다 좋아, URL

그래서 지금은 Google을 테스트하고 테스트하기가 쉽기 때문에 Google에서 테스트하고 싶습니다 여기서 �S forget을 잊어서는 안되며, 지역 호스트에서 ���도 괜찮습니다 이제 두 개 더 필요합니다이 하나가 응답이고 다른 하나가 오류입니다 알았습니다

당신은 여기에서 지저분해질 것입니다 그래서 당신은이 ok, 4 개의 세미콜론을 좋아할 것입니다 그리고 아마도 이것과 같이하는 것이 좋습니다 CtrL + Space를 입력하십시오 우리는 제안으로 볼 것입니다

이것은 데이터 리스너 응답이며이 중 하나 인 CtrL + Space, 오류 리스너입니다 따라서 여기에 오류가 발생할 때마다 오류가 표시됩니다 오류가 발생하지 않는 경우를 대비해서, 너는 아무것도 볼 수 없을거야 오류가 발생하면 오류가 종료되는 것처럼 테스트해야하므로 그 의미는 약간의 오류가 있으므로 오류 결과를 _____에 표시하려면 오류를 닫는 것이 좋습니다 나 한테 뭔가 잘못된 것처럼 말할 수있어, 알았어

이런 식으로 사용자를 놀라게하고 싶지는 않지만, 우리는 로그하고 볼 필요가 있습니다 오류, 그래서 우리는 태그, 오류가 있어야합니다, 당신은 여기에 메시지를, 그리고 여기에 태그를 대개 여기서 이름을 사용하십시오 그래서 최종 문자열 TAG = �MainActivity�; 이런, 괜찮아! 자, 이제 실제 코드를 사용하겠다는 응답을 얻고 싶습니다

로그이므로 결과는 여기서 ______로 표시되므로 데이터를 가져올 지 알 수 있습니다 Google에서 제공했는지 여부 좋아,이 중 하나는 사용할 수 없으므로 이제 실행 해 보겠습니다 로컬 호스트를 테스트하는 것이 에뮬레이터에서 가져 오는 것이 좋습니다 하지만 지금은 먼저 Google을 테스트 해 보도록하겠습니다

잊어 버리면 잊지 않을 것입니다 오류가있다 Ok, 오! 나는 이것을 잊었다

방금 StringRequest를 호출했지만 Singleton에 추가하지 않았습니다 Singleton은 현장에서 지휘관과 같다고 생각합니다 이전 비디오에서 설명했습니다 이것을 사용할 수는 있지만 사용하는 것이 좋습니다 그것과 같은 ApplicationContext는 큐를 추가하고 여기에 StringRequest를 추가한다

한 번 더 테스트를 한 후 여기서 내부 호스트를 테스트 할 것입니다 이전 비디오에서 말했던 것처럼 다음과 같은 두 가지 공통적 인 문제가 나타납니다 1 금지 된 사용 권한 2

JSON malfom 이 문제는 많은 문제를 일으킬 수 있으므로 여기에서 연결할 수 있는지 확인하십시오 이제 구글을 보자 이제 구글을 볼 수있다 예! 우리는 그것을 볼 수 있습니다

여기 아래에 있습니다 찾을 수 없다면 MainActivity를 입력하십시오 태그를 사용했기 때문입니다 네, 수업의 이름으로 태그를 볼 수 있습니다 다음은 Google입니다

이제 인터넷에 연결할 수 있음을 의미합니다 이제는 로컬 호스트를 테스트하는 좋은 시간이고 로컬 호스트에는 's'및 또한이 같은 로컬 호스트 말할 수 없다! 별칭 1003

2를 넣어야합니다 나 같은 동작이 필요한 경우 숫자 10032를 사용해야하지만 u가 실행되는 경우 위의 옵션이있는 것처럼 숫자 10

022와 같이 사용할 수 있습니다 if BlueStacks를 사용하고 100

22도 사용하십시오 예를 들어 현재 포트 번호가 80 인 경우 다른 포트를 사용하는 경우 여기에 열 다음에 전체 URL의 경로를 지정해야합니다 이런 식으로 복사하여 붙여 넣는 것이 좋습니다하지만 여기서는 1 번부터 테스트해야합니다

당신은 을 입력해야합니다 좋아, 테스트 해보자 내가 실행할 수 있는지 없는지 설명 할거야

자, 이제 JSON을 여기에서 얻을 수 있습니다 그러나 언젠가는 이것을 가지고 있지 않을 것입니다 이걸 보게되면, 행운을 빈다 그러나 그렇지 않다면, 돌아가서 ''라고 타이핑해야한다 과 나는 너를 잘 이해할 수 있기 때문에 너희들 대부분이 나 같은 행운이되지 않을 것이다

그리고 나는 항상 그렇게 해 나는 그것을 고치는 법을 알고 있지만, 당신을 위해, 나는이 문제를 계속해서 반복 할 것이라고 생각합니다 다시 한 번 질문을 많이 했으므로 이제 어떻게 해결할 수 있는지 보여 드리겠습니다 YouTube 시청자 따라서 http를 입력해야합니다

좋아요 다음과 같이 입력 할 수 없습니다 Google은 사용자가 무언가를 입력 할 때 여전히 필요로하는 것처럼 입력하므로 http, 1003

2 및 ENTER를 입력하십시오 이런 것을 볼 수 있습니까? 좋아, 그렇지 않으면 구성 및 구성 파일로 이동하여 수정해야합니다 여기서도 허가를 변경하십시오 모두가 당연한 것으로 요구하십시오 임무가 거부 된 것처럼 보이면, 당신은 모든 부여 된 것을 요구하기 위해 변화합니다

좋아, 좋아 한 가지 더, JASON malform은 일반적으로 notepad ++입니다 그것은 당신이 여기에서 볼 때, 당신은 무언가를 앞에 볼 것입니다 두 개의 UTF, UTF-8이 있지만 다른 하나는 BOM이없는 UTF-8입니다 그래서 메모장 + + 및 다른 도구는 일반적으로이 서식이 있으므로 변경해야합니다

UTF-8로 오케이 메모장 + + 특히 당신은 메뉴에 가서 좋아해요 그것을 작동시키고 다른 텍스트 편집기를 사용한다면 스스로 처리해야합니다 어떤 텍스트 편집기를 사용하고 있는지 모르겠다 문제가 있다면, 이 비디오의 아래에, 나는 당신에게 말할 것입니다

자, 이제 텍스트를 얻었습니다 JSON을 가지고 있습니다 이제 JSON 텍스트를 변환하고 싶습니다 좋아, ArrayList에 마지막 부분 그래서 저는 이것을위한 도서관을 가지고 있습니다

직접 변환하려는 경우 라이브러리를 사용할 수 있습니다 이렇게 githubcom/kosalgeek에 가보십시오 그러면 KGJasonConverter에 가보겠습니다 나는 PhtoUtil과 같은 좋은 라이브러리를 가지고있다

FileCacher가있다 asynctask 1과 2 (MD5)에 대한 것이지만, 우리는 KGJasonConverter를 사용할 것입니다 당신이해야 할 일은 그것을 다운로드하고 GSON을 다운로드하는 것입니다 그래서 오른쪽 클릭을하십시오 그리고 나서 내 것을 다운로드하십시오, 그래서 그것을 다운로드하고, 그 재료를 변환하는 방법, 괜찮아

그래서, 당신은 GSON이 필요합니다 그리고 아마도 당신도 GRADLE을 사용할 수 있습니다 그러나 나는 잊었습니다 그것은 당신이 그것을 찾을 수 없다면, 단지 GSON을 다운로드 할 수 있습니다, 그 벌금, 그냥 다운로드, 알았어

그래서 당신은 이것을 필요로하므로, 당신도 이것을 필요로합니다 어디 있니? 맥 오 맥! 못 찾겠 어 어쨌든, 하나씩 복사하고 프로젝트로 가서 당신은 여기로, 당신은 프로젝트 파일로 이동하십시오 당신이 그것을 볼 수 없다면, 여기를 클릭하십시오, 프로젝트 파일 및 당신은 응용 프로그램과 libs에 가서 오른쪽 클릭 붙여 넣으세요, 알았어요 지금 라이브러리를 실행하고 추가하면 GSON도 필요합니다

이제 인덱싱을하고 있어요 건물을 통과 할 수 없기 때문에 조금 기다려야했습니다 비트 좋아, 이제 지나쳤다 오른쪽 다리와 라이브러리를 추가하십시오

이제 안드로이드로 돌아갈 수 있습니다 여기에서 Gradle을 다시 확인할 수 있습니다 이제는 컴파일러에서의 화재도 볼 수 있습니다 이제 내 라이브러리를 사용할 준비가되었습니다 여기에서 응답 내에서이 라이브러리를 사용할 것입니다

왜냐하면 여기가 하나의 ______ 방법과 같기 때문에, 당신이해야 할 일, 당신이 아는 모든 것 방법 안에서 수행해야하는 작업을 원한다면 당신은 데이터를 얻고 싶습니다, 당신은 얻을 수 없습니다, 당신은 ok 안에 들어가야 만합니다 파트너 옵저버를 안다면 다른 파트너를 만들 수 있습니다 인터페이스가 있지만, 실제로는 당신을 위해 일할 것입니다하지만 그걸 안으로하십시오, 알았습니다 여기에는 아주 작은 것이있을 것입니다

여기에 그것을 사용하려면 두 가지 방법이 있습니다 괜찮습니다하지만 바깥 쪽을 사용하려면, 괜찮아요, 그냥 이렇게 자르고 이것으로 바꾸세요 지금은 괜찮아요 그리고 그것은 classier를 구현하는 것과 같습니다

이런 식으로 밖에 좋은 방법이있어, 알았어 그리고 너는 밖에서 뭔가 쓸 수있어 하지만 당신이 사용하기를 원하지만 대부분 사람들은 그것은, 그러나 당신이 5를 따르는 것이 좋은 습관입니다 어쨌든 이제 JSON을 얻었으므로 변환 할 코드는 코드 한 줄에 불과합니다 예! 그냥 복사 해

알았어 그게 바로 복사해서 지금은 여기에서 바꾸고 싶습니다 그래서 이것은 제품 라인입니다 우리는 제품에 대해 이야기하고 있으며 이것은 다시 제품입니다 이제 JSON이 이것입니다, 알았습니다

이것은 ProductList입니다 이전 비디오에서 우리는 더미에서 데이터를 생성하는 것처럼 사용했습니다 이제 베타 버전이므로 지금 전화 해주세요 그래서이 코드는 외부에서 사용되었으므로 이제 여기에서 메서드를 사용하려고합니다 이제 ProductList가 JSON에서 가져오고 데이터를 넣습니다

ProductAdapter에 추가하십시오 사실, 여기에 ProductAdapter가 이미 생성되었으므로 지금은 좋습니다 여기에 데이터가 표시됩니다 문제는 이제 이미지를 볼 때 기억합니다 이미지 이름의 마지막 부분 만 넣습니다

괜찮아 그래서 이제 우리는 세 가지 ______를 갖습니다 왜냐하면 그 이미지는 URL 형식으로 이미지는 costumer 안에 있습니다 좋아요 고객과 이미지는 괜찮습니다

그래서 우리는 이것을 복사 할 것입니다, 좋아요, 여기, 여기, 여기에 그것을 사용할 것입니다 전체 URL과 실제 프로젝트에서 이와 같은 작업을 수행하는 것이 좋습니다 이 URL을 실제 URL로 변경하십시오 내 웹 사이트가 코사크 인 경우, 괜찮아 하지만 지금은 지역의 사람들을 위해서, 그냥 이렇게하고 우리가 이것 전에 슬래쉬하지 않는다는 것을 기억하십시오

우리는 여기에 슬래쉬를 추가 할 것이지만이 같은 공간과 제품은 여기에 없습니다 좋아, 좋아 보인다 이제, 여기에 새로운 LinearLayout과 LayoutManager가 있습니다 좋아요, 여기 안쪽에 어댑터를 설치하려고합니다 우리는 그것을 호출 할 것입니다

승인 좋아 보인다, 나는 그것이 지금 좋을 것이기를 바란다 그래서 여기의 이미지, 예! 제품 CardView 좋아,이 하나의 컨텍스트, 제품, 제품, 알았어! IvImageURL 및 tvName 및 tvPrice 좋아, 좋아 보인다, 달려 가자 서버가 실행 중인지 확인하십시오

와우! 그것은 매우 오랜 시간이 걸립니다 멈추게 해줘 알았지? 이것은 우리가 지금 데이터베이스 서버에서 얻은 데이터입니다 확인해 봅시다이 사진은 그림 1, 선택 3은 선택하지 않습니다

ID # 3이 처음입니다 일부 사진이 삭제되었으므로 그림 3, 예이 사진이 있습니다 오, 안돼, 안돼, 우리가 거꾸로하고, 잊어 버렸어 그래서 그것을 뒤집었고, 그래서 그것은 정상에서 11 번째가 될거야

하단에 # 3이 있으므로 이미지 # 6이 여기에 있습니다 네! 올바른 것입니까! 흠! 흥미 롭다 왜 이걸 가지고 있니, # 7? 보자 이건 12입니다, 알았어 맞아

첫 번째와 # 6, 예, 크기를 변경할 수 있습니다 패딩을 변경할 수 있습니다 너 괜찮아 그래서, 조금 요약 해 보겠습니다 여기에는 많은 단계가 있습니다

이것은 전체 단계이지만 RecyclerView의 일부일뿐입니다 여기 데이터가 있으면 여기서도 많은 단계가 필요할 것입니다 그렇습니다 세 가지 요청에서 네 개의 매개 변수, 알겠습니다 그러면 데이터를 얻은 다음 변환합니다

데이터 및이 라이브러리는 방금 사용했습니다 너는 너 자신을 쓸 수있다 그것은 거대한 일이 될 것입니다 여기 이전 부분이 있습니다 아시다시피, 여기가 새로운 것이고, Volley입니다

웹에서 가져온 데이터를 다시 검색 할 수 있습니다 URL이 잘못되었다고 가정 해 봅시다이 중 하나가 없으면 시도해보십시오 우리가 끝내기 전에 한가지 빨리 해보고 오류가 있는지 보자 그리고 지금 당신은 그것을 막을 것입니다

그래서 이것은 하나의 실수입니다 왜냐하면 이것은 마사지이기 때문에 두 개의 문자열을 넣어야합니다 다시 실행하십시오 현재 작동하고 있기 때문에 어떤 문제도 발생하지 않기 때문에 어쩌면 작동하지 않는 앱 일 수도 있습니다 내가 어떻게 그럴 수 있니, 어떻게하면 돼, 너도 알다시피, 너는 아마도 불평 할거야

그것에 대해 좋아, 이제 또 다른 유형, 다른 유형을 보자, ok 75 여기, 오류가 아닙니다 왜 당신은 그것에 대해 불평하고 있습니까, 아니면 언젠가 당신이 처음부터 그것을 다시해야 할 때가 있습니다 너도 알다시피, 그것은 이전의 것과 계속 같다 내가 다시 실행하게 해줘

좋아, 뭔가 잘못 됐어, 이제 서버 오류를 보자, 알았어 다시 한번 보자 우리가 다른 것을 얻을 수 있고 이렇게 메시지를 얻을 수 있다면 그렇게 할 수 있을까? 오, 여기 메시지를받을 수 없으니 괜찮습니다 그냥 이렇게하세요 괜찮습니다

그것을 아는 것이 좋다, 너는 알고있다 좋아, 이제 Android Volley에 대해 자세히 알고 싶다면 다음과 같이 제안하고 싶습니다 내 YouTube 채널로 이동하면 Android Volley에 대한 많은 동영상을 볼 수 있습니다 이 재생 목록에서 처음부터 시작합니다 예를 들어, 설정 및 방법 에서처럼 세 가지 요청 인 JSON을 사용하고, 업데이트하고 싶습니다

데이터 오류를 삽입합니다 Android Volley와 함께 할 수있는 다른 것들도 있습니다 마지막으로 잊지 말고 내 채널을 구독하고 엄지 손가락을주세요 만약 의견이 있으시면 아래에 의견을 남겨주십시오 당분간 나는 작별 인사를하고 싶습니다

그리고 나는 당신을 다음 번에 보게 될 것입니다 이미지 이름의 마지막 부분 만 알았어 이제 이미지가 URL 형식이되기 때문에 세 개의 ______가 있습니다 이미지는 costumer 안에 있습니다 좋아요

고객과 이미지는 괜찮습니다 그래서 우리는 이것을 복사 할 것입니다, 좋아요, 여기, 여기, 여기에 그것을 사용할 것입니다 전체 URL과 실제 프로젝트에서 이와 같은 작업을 수행하는 것이 좋습니다 이 URL을 실제 URL로 변경하십시오 내 웹 사이트가 코사크 인 경우, 괜찮아

하지만 지금은 지역의 사람들을 위해서, 그냥 이렇게하고 우리가 이것 전에 슬래쉬하지 않는다는 것을 기억하십시오 우리는 여기에 슬래쉬를 추가 할 것이지만이 같은 공간과 제품은 여기에 없습니다 좋아, 좋아 보인다 이제, 여기에 새로운 LinearLayout과 LayoutManager가 있습니다 좋아요, 여기 안쪽에 어댑터를 설치하려고합니다

우리는 그것을 호출 할 것입니다 승인 좋아 보인다, 나는 그것이 지금 좋을 것이기를 바란다 그래서 여기의 이미지, 예! 제품 CardView 좋아,이 하나의 컨텍스트, 제품, 제품, 알았어! IvImageURL 및 tvName 및 tvPrice 알았어, 좋아 보인다

서버가 실행 중인지 확인하십시오 와우! 그것은 매우 오랜 시간이 걸립니다 멈추게 해줘 알았지? 이것은 우리가 지금 데이터베이스 서버에서 얻은 데이터입니다 확인해 봅시다

이 사진은 그림 1, 선택 3은 선택하지 않습니다 ID # 3이 처음입니다 일부 사진이 삭제되었으므로 그림 3, 예이 사진이 있습니다 오, 안돼, 안돼, 우리가 거꾸로하고, 잊어 버렸어

그래서 그것을 뒤집었고, 그래서 그것은 정상에서 11 번째가 될거야 하단에 # 3이 있으므로 이미지 # 6이 여기에 있습니다 네! 올바른 것입니까! 흠! 왜 이걸 가지고 있니, # 7? 어디 보자 이건 12입니다, 알았어 맞아

첫 번째와 # 6, 예, 크기를 변경할 수 있습니다 패딩을 변경할 수 있습니다 너 괜찮아 그래서, 조금 요약 해 보겠습니다 여기에는 많은 단계가 있습니다

이것은 전체 단계이지만 RecyclerView의 일부일뿐입니다 여기 데이터가 있으면 여기서도 많은 단계가 필요할 것입니다 그렇습니다 세 가지 요청에서 네 개의 매개 변수, 알겠습니다 그러면 데이터를 얻은 다음 변환합니다

데이터 및이 라이브러리는 방금 사용했습니다 너는 너 자신을 쓸 수있다 그것은 거대한 일이 될 것입니다 여기 이전 부분이 있습니다 아시다시피, 여기가 새로운 것이고, Volley입니다

웹에서 가져온 데이터를 다시 검색 할 수 있습니다 URL이 잘못되었다고 가정 해 봅시다이 중 하나가 없으면 시도해보십시오 우리가 끝내기 전에 한가지 빨리 해보고 오류가 있는지 보자 그리고 지금 당신은 그것을 막을 것입니다

그래서 이것은 하나의 실수입니다 왜냐하면 이것은 마사지이기 때문에 두 개의 문자열을 넣어야합니다 다시 실행하십시오 현재 작동하고 있기 때문에 어떤 문제도 발생하지 않기 때문에 어쩌면 작동하지 않는 앱 일 수도 있습니다 내가 어떻게 그럴 수 있니, 어떻게하면 돼, 너도 알다시피, 너는 아마도 불평 할거야

그것에 대해 좋아, 이제 또 다른 유형, 다른 유형을 보자, ok 75 여기, 오류가 아닙니다 왜 당신은 그것에 대해 불평하고 있습니까, 아니면 언젠가 당신이 처음부터 그것을 다시해야 할 때가 있습니다 너도 알다시피, 그것은 이전의 것과 계속 같다 내가 다시 실행하게 해줘

좋아, 뭔가 잘못 됐어, 이제 서버 오류를 보자, 알았어 다시 한번 보자 우리가 다른 것을 얻을 수 있고 이렇게 메시지를 얻을 수 있다면 그렇게 할 수 있을까? 오, 여기 메시지를받을 수 없으니 괜찮습니다 그냥 이렇게하세요 괜찮습니다

그걸 알면 반가워요 좋아, 이제 Android Volley에 대해 자세히 알고 싶다면 다음과 같이 제안하고 싶습니다 내 YouTube 채널로 이동하면 Android Volley에 대한 많은 동영상을 볼 수 있습니다 이 재생 목록에서 처음부터 시작합니다 예를 들어, 설정 및 방법 에서처럼 세 가지 요청 인 JSON을 사용하고, 업데이트하고 싶습니다

데이터 오류를 삽입합니다 Android Volley와 함께 할 수있는 다른 것들도 있습니다 마지막으로 잊지 말고 내 채널을 구독하고 엄지 손가락을주세요 만약 의견이 있으시면 아래에 의견을 남겨주십시오 지금은 작별 인사를하고 싶습니다

가까운 장래에 만나겠습니다

안드로이드 코딩 습관 #2 – 안드로이드 UI를 쉽게 구성해볼까요!

UI는 종이에 사진을 올리고 글을 쓰듯이 만든다는 거죠 안녕하세요 코딩 습관의 코딩 메이트 디모 입니다 지난 시간에 저희는 주소록을 만들기 위해 어떤 화면이 필요한지 생각해 봤습니다 이번 시간에는 이 화면들을 구성 해 볼텐데요 이런 화면 구성을 뭐라고 부를까요 바로 UI 라고 부릅니다 많이 들어는 보셨을 텐데 정확히 아시나요 UI 란 유저 인터페이스, 즉 사용자가 프로그램과 의사소통 하기 위한 매개체입니다 쉽게 말해 컴퓨터에게 사람의 말과 행동으로 입출력하게 해준다는 말입니다 그럼 본격적으로 UI 들을 구성해 보겠습니다 먼저 상세화면 부터 구성 해볼까요 주요기능은 한 사람의 입력된 정보를 모두 보여주는 화면입니다 구성 요소로 이름, 사진, 전화번호, 이메일, 인스타그램, 메모 정도를 사용 하도록 하죠 여기서 잠깐! 그런데 대체 UI는 어떻게 만드는 걸까요? 안드로이드는 각각의 UI 를 모듈 형태로 제공하고 있습니다

프로그램으로 끼워 맞추고 조작하면 됩니다 쉽게 말하면 종이에 사진을 올리고 를 쓰듯이 안된다는 거죠 여기서 빈 종이에 역할을 하는 것을 레이아웃이라고 합니다 내부에 여러 요소를 놓을 수 있죠 레이아웃에 놓을 요소들은 뷰가 담당합니다 안드로이드는 여러가지 형태의 뷰를 구현하여 제공하고 있습니다 그럼 다시 상세화면 구성으로 돌아와 봅시다 레이아웃의 프로필 사진, 별칭과 이름, 전 화번호, 인스타그램, 이메일, 메모 순으로 뷰를 놓아 보죠

왜 이렇게 배치 했을까요 UI은 사람이 인지하는 순서대로 중요한 요소를 배치해야 합니다 읽어야 하는 요소들은 책을 읽을 때처럼 좌측 상단에서 우측 하단 순으로 배치하는 것이 편합니다 그럼 방금 상세 화면을 구성하는 데는 어떤 뷰들이 사용된 지 알아볼까요 이미지 파일을 표시하는 ImageView, 그리고 글자를 표시하는 TextView를 사용했습니다 다음은 입력화면을 구성해 봅시다 입력하면 은 상세 화면에서 각 항목을 입력으로 바꿔주면 됩니다 한번 바꿔 볼까요 프로필 사진, 별칭과 이름, 전화번호, 인스타그램, 이메일, 메모까지 입력 창 으로 변경합니다

사진 위치에 대체될 카메라 아이콘은 사진을 선택하는 버튼으로 사용할 겁니다 입력 화면에서 글자를 입력하기 위한 뷰가 추가된 것을 보셨죠 글자를 입력하는 뷰를 EditText 라고 합니다 마지막은 목록 화면을 구성 해야겠죠 목록화면은 결과부터 확인해 볼까요 앞서 입력했던 내용을 명함 형태로 만들어서 레이아웃에 차례로 배치해봅니다 참쉽죠 앞서 종이 역할을 레이아웃이 한다고 설명 드렸죠 여기서 사용되는 레이아웃은 앞선 두 화면 과는 다릅니다 그건 바로 동일한 형태의 레이아웃을 목록 형태로 여러개 늘어놓는 점입니다 앞선 두 화면처럼 자유롭게 배치하는 경우에는 RelativeLayout을 목록화면처럼 반복적으로 뷰을 배치하는 경우에는 RecyclerView를 사용합니다 그럼 처음부터 다시 목록 화면을 만들어 볼까요

먼저 명함역할의 빈 RelativeLayout을 준비합니다 사진 이름 전화번호 인스타그램 이메일 정도로 요약하면 되겠죠 다음은 RecyclerView에 명함을 차례로 배치 해봅시다 이렇게 입력화면, 상세화면, 목록화면이 모두 완성되었습니다 오늘의 키포인트는 3가지! 종이의 역할을 하는 것은 Layout 요소의 역할을 하는 것은 View 라고 한다는 점

레이아웃에 뷰를 마음대로 배치하고 싶을때는 RelativeLayout 반복적으로 배치하고 싶을 때는 RecyclerView를 사용한다는 점 그리고 오늘 사용한 뷰는 ImageView, TextView, EditText가 있었다는 점을 기억하세요 다음 시간에는 pc에 안드로이드 를 개발하는 개발 도구를 설치하는 방법을 같이 알아보도록 하겠습니다 구독과 좋아요 부탁드릴게요