첫번째 App은 장난감 목록을 보여주는 것인데
ToyBox라는 class에 있는 것들을 보여주는 것이었다.
두번째 App : Github-Repo-Search
Github에 있는 project를 검색하여 해당 목록을 보여주는 것이다.
network통신 및 parsing 작업
Ex1에서는 프로젝트 생성이다.
T01 프로젝트와 같이 프로젝트 생성
예제 프로젝트의 TODO 를 Complete 하면 된다.
- activity_main.xml 에서 25개
- MainActivity.java 에서 6개
- build.gradle에서 1개
총 3개의 파일에 32개의 TODO가 있다.
먼저 activity_main.xml
<!--TODO (1) Change the ConstraintLayout to a LinearLayout-->
<!--TODO (2) Make the orientation vertical-->
<!--TODO (3) Give left, right, and top padding of 16dp-->
<!--TODO (4) Remove the line that declares the id, we don't need it-->
<!--TODO (5) Remove the xmlns:app declaration, we don't need that anymore-->
ConstraintLayout -> LinearLayout 로 바꾼다.
이때 LinearLayout은 한줄로 세우는 것이므로 가로로 세울지 세로로 세울지 지정해야한다
orientation=vertical 은 세로, horizontal은 가로
왼쪽,오른쪽,위,아래 여백 설정(16dp)
android:id=activity_main은 필요없으므로 제거
xmlns:app 도 필요없으므로
<android.support.constraint.ConstraintLayout ... </android.support.constraint.ConstraintLayout> |
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ... </LinearLayout> |
<!--TODO (6) Delete this TextView-->
기본으로 정의 된 Hello World TextView를 제거한다.
<TextView |
<!--TODO (7) Add an EditText-->
<!--TODO (8) Give the EditText an id of @+id/et_search_box-->
<!--TODO (9) Set the text size to 22sp-->
<!--TODO (10) Set the width to match_parent and the height to wrap_content-->
<!--TODO (11) Provide a hint telling the user to enter a query and then click search-->
EditText를 추가하고
id 설정하고
text size=22sp
width, height 설정
hint 넣기 : edit text에 아무것도 입력이 안되었을 때 가이드하는 문장
<EditText |
<!--TODO (12) Add a TextView-->
<!--TODO (13) Give the TextView an id of @+id/tv_url_display-->
<!--TODO (14) Set the text size to 22sp-->
<!--TODO (15) Set the width to wrap_content and the height to wrap_content-->
<!--TODO (16) Give the TextView a top margin of 8dp-->
<!--TODO (17) Set the text to tell the user their search URL will show up here when they click search-->
TextView 추가
id 설정
text size=22sp
width, height
margin 설정
textview에 표시할 글자 'Click search and your URL will show up here!' 설정
<TextView |
<!--TODO (18) Add a ScrollView-->
<!--TODO (19) Set the width to match_parent and the height to wrap_content-->
<!--TODO (20) Set the top margin to 16dp-->
Scrollview 추가
width, height, margin 설정
<ScrollView |
<!--TODO (21) Within the ScrollView, add a TextView-->
<!--TODO (22) Give the TextView an id of @+id/tv_github_search_results_json-->
<!--TODO (23) Set the text size to 18sp-->
<!--TODO (24) Set the height and width to wrap_content-->
<!--TODO (25) Set the text to something that tells the user to make a search-->
ScrollView 안에 TextView 추가
id 설정
textsize=18
width, height 설정
textview에 표시할 글씨 'Make a Search!' 설정
(scrollView는 이미 추가했으므로 TextView만 ScrollView아래에 추가한다)
<ScrollView |
여기까지 main_activity.xml
MainActivity.java에서 나머지 TODO
// TODO (26) Create an EditText variable called mSearchBoxEditText
// TODO (27) Create a TextView variable called mUrlDisplayTextView
// TODO (28) Create a TextView variable called mSearchResultsTextView
사용자 입력 EditText 변수 정의
조회된 내용 중 url 표시 TextView 변수 정의
조회결과 TextView 변수 정의
import android.widget.EditText; public class MainActivity extends AppCompatActivity { |
// TODO (29) Use findViewById to get a reference to mSearchBoxEditText
// TODO (30) Use findViewById to get a reference to mUrlDisplayTextView
// TODO (31) Use findViewById to get a reference to mSearchResultsTextView
onCreate Method 안에서
editText 변수에 xml에 정의 된 EditText 연결
TextView 변수에 xml에 정의 된 TextView 연결
@Override |
마지막으로
settings.gradle 파일 수정
// TODO (32) Remove the ConstraintLayout dependency as we aren't using it for these simple projects
맨 처음에 ConstraintLayout 을 LinearLayout으로 바꿨음.
없애지 않아도 무관하나 깔끔하게 제거.
ConstraintLayout은 기본Layout이 아니라 android.support를 통해 제공되므로 불필요함.
자동으로 수정되어 include:app 만 있는 경우는 그냥 진행하면 됨.
원래는 setting.gradle에 아래와 같이 정의되어 있음.
dependencies { |
모든 수정이 끝났으면 실행
필요한 항목만 만들어놓은 껍데기 이므로 실제 동작하지 않음.
조회버튼과 입력된 내용으로 검색하는 로직은 다음 프로젝트에서 계속...