마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

context 사용 질문입니다. ㅜㅜ

0 추천
public class MainFragment extends Fragment {
 
 private AudioPlayer1 mPlayer = new AudioPlayer1();
 
 public Context mContext = this.getActivity();
 private Button mDoButton;
 private Button mMiButton;
  
 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
  
  View v = inflater.inflate(R.layout.fragment_main, parent, false);
  
  mDoButton = (Button)v.findViewById(R.id.Do_button);
  mMiButton = (Button)v.findViewById(R.id.Mi_button);
  
  mDoButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
             mPlayer.do_play(mContext);
            }
        });
  
  mMiButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                mPlayer.mi_play(getActivity());
            }
        });

 

mMibutton에는 context 자리에 getActivity()를 직접 넣었구요

mDobutton에는 context 자리에 context 변수를 넣었는데

Mi는 되는데 Do는 안되네요.

 

context 쓸곳이 많아서 변수로 만들어야하는데 뭐가 문젠지 알려주세요

익명사용자 님이 2014년 8월 15일 질문

1개의 답변

+2 추천

fragment는 아래 그림과 같은 라이프 사이클을 가지며 onAttach()  호출 시 Activity와 연결이 되는데,

객체가 생성될 때 getActivity()가 호출하셔서 mContext 에 null이 할당 된겁니다.

 

 
onAttach() 가 호출된 이후  Context 멤버  변수에 값을 할당하게 바꾸세요
사악미소 (65,330 포인트) 님이 2014년 8월 15일 답변
...