액티비티에서 XML안에 있는 View element들에 접근할 때는 setContentView()를 통해 레이아웃이 놓여진 다음에야 접근이 가능합니다. 그런데 님의 코드는
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Button main_Start = findViewById(R.id.main_Start);
Button main_End = findViewById(R.id.main_End);
Button main_Edit = findViewById(R.id.main_Edit);
ListView main_ScrollList = findViewById(R.id.main_ScrollList); //일주일 근무 내역
TextView main_State = findViewById(R.id.main_State);\
...
}
위처럼, Activity 클래스가 생성되자 마자 View element들에 접근하고 있네요. 이 코드는 동작을 하지 않습니다. 바로 사용법은
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Button main_Start;
Button main_End;
Button main_Edit;
ListView weeklyTimeSheetListView;
TextView main_State;
Button tap1;
Button tap2;
Button tap3;
Button tap4;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bindViews(); // setContentView() 다음에 뷰 요소들에 접근
...
}
private void bindViews() {
main_Start = findViewById(R.id.main_Start);
main_End = findViewById(R.id.main_End);
main_Edit = findViewById(R.id.main_Edit);
weeklyTimeSheetListView = findViewById(R.id.main_ScrollList);
main_State = findViewById(R.id.main_State);
tap1 = findViewById(R.id.tap1);
tap2 = findViewById(R.id.tap2);
tap3 = findViewById(R.id.tap3);
tap4 = findViewById(R.id.tap4);
}
}