프레임 레이아웃 안에, 리스트뷰와 렐러티브 레이아웃을 겹쳐놓았습니다.

 

렐러티브 레이아웃 안에 이미지버튼 3개를 넣고, 버튼 바라고 했습니다(이것은 임의적인 명칭입니다).

 

버튼 바가 리스트뷰를 가려서, 리스트 아이템을 클릭 못하는 경우가 있기 때문에, 옵션메뉴에 토글 기능을 넣으려 합니다.

 

레이아웃이 가시 상태일때 숨기기 버튼을, 비가시 상태일때 보이기 버튼으로 기능하게 하려 해서, 이렇게 코딩해 봤습니다.

 

 RelativeLayout layout_mi = (RelativeLayout)findViewById(R.id.relativeLayout2); // 렐러티브 layout_mi
 public boolean onCreateOptionsMenu(Menu menu) { // 옵션메뉴
  MenuItem item = menu.add(0, 1, 0, "종료");
  item.setAlphabeticShortcut('a');
  if(layout_mi.getVisibility() == View.VISIBLE){ // 버튼 바의 가시 상태에 따라
   menu.add(0, 2, 0, "버튼 바 감추기"); // 비지블이면 감추기 버튼 표시
  }else{
   menu.add(0, 2, 0, "버튼 바 보이기"); // 인비지블이면 보이기 버튼 표시
  }
  
  return true;
 }
 public boolean onOptionsItemSelected(MenuItem item) { //옵션메뉴 버튼들 기능 설정
  switch (item.getItemId()) {
  case 1:
   back_popup();
   return true;
  case 2:
   layout_mi.setVisibility(View.INVISIBLE);
   return true;
  case 3:
   layout_mi.setVisibility(View.VISIBLE);
   return true;
  }
  return false;
 }

그런데 빌드해 본 결과, NullPointerException이 뜨더군요.

 

대충 디버깅을 해보니, 에러의 원인은 첫 라인

 

 RelativeLayout layout_mi = (RelativeLayout)findViewById(R.id.relativeLayout2);


이게 NullPointerException을 일으키는 것 같습니다.

 

왜 이런 문제가 발생하는지, 해결법은 없는지 알고싶네요.

 

초보 개발자에게 힘이 되어주세요!!^^