첫번째 프로젝트에서는 프로젝트 생성하고 layout을 변경했으니
두번째 프로젝트에서는 Toylist를 보여주는 것을 한다.
Excercise 에서 Todo 를 확인한다.
만들던 프로젝트에서 쭉 해도 되고
Excercise를 수정해도 된다.
만들던 프로젝트에는 Todo가 표시되지 않으니 알아서 선택.
MainActivity 에 ToDo1
// TODO (1) Declare a TextView variable called mToysListTextView
private TextView mToysListTextView;
activity_main.xml 에 ToDo2 tv_toy_names 추가
before |
after |
<TextView |
<TextView |
MainActivity 에 ToDo3
onCreate method 에서 Textview와 mToysListTextView 연결
// TODO (3) Use findViewById to get a reference to the TextView from the layout
mToysListTextView = (TextView) findViewById(R.id.tv_toy_names);
// TODO (4) Use the static ToyBox.getToyNames method and store the names in a String array
String[] toyNames = ToyBox.getToyNames();
그런데 Excercise에서 작업을 하면 문제가 없으나
기존 프로젝트에서 작업하는 경우에는 ToyBox class가 없으므로 Error가 난다.
ToyBox라는 class를 만들거나 복사해 온다.
package com.example.nobang.favoritetoys; |
에러가 없으면 다음 Todo
// TODO (5) Loop through each toy and append the name to the TextView (add \n for spacing)
for (String toyName : toyNames) {
mToysListTextView.append(toyName + "\n\n\n");
}
ToyBox class에 있는 장난감이름들을 불러와서
TextView에 일렬로 쭉(for문으로) 붙이는 거다.
todo 3을 진행하지 않으면 mToysListTextView가 초기화되어있지 않기 떄문에 아래와 같이 에러가 난다.
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.nobang.favoritetoys/com.example.nobang.favoritetoys.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.append(java.lang.CharSequence)' on a null object reference |
MainActivity
- solution 프로젝트에는 TODO가 COMPLETED로 되어있음.
- todo를 진행했으면 COMPLETED로 바꿔주는 것이 좋음.
결과
"\n\n\n"으로 줄바꿈이 됨.