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

안드로이드 프레그먼트에 대해서 질문합니다

0 추천
public class Main_moreActivity extends Fragment implements OnClickListener {
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View moreview = inflater.inflate(R.layout.main_more, container, false);
            return moreview;
 
            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                Button btn3 = (Button) findViewById(R.id.morebtn1);
 
                btn3.setOnClickListener(new View.OnClickListener() {
 
                    @Override
 
        //전화걸기 *아래 AndroidManifest에서 permission(허가)을 주어야 바로 전화거 걸립니다
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
            Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:010-0000-0000"));
                        startActivity(intent);
                    }
 
                });
            }
        }
}
main_more에는 morebtn1이라는 버튼이있습니다
버튼을 누르면 전화를 걸수있게 하려고하는뎅
지금 java파일이 fragement를 extend해서서
findeViewId가 안써집니다.
제가 응용을할줄 몰라서그런뎅
어떠케해야 전화를 걸수있게 할수잇을까용
졸업반대학생 (140 포인트) 님이 2015년 4월 19일 질문

2개의 답변

0 추천

onCreate 부분을 지우시고, 그 부분에 있던  

Button btn3 = (Button) findViewById(R.id.morebtn1);에서 

moreview.findViewById로 사용해보세요..

return moreview;는 맨 밑으로 옮기세요.

anci (19,950 포인트) 님이 2015년 4월 19일 답변
anci님이 2015년 4월 19일 수정
좀더 자세히 알려주시면 안될까여 ㅠㅠ
0 추천

Fragment에서 곧장 findViewById를 사용할 수 없고

view.findViewById 형식으로 써줘야 됩니다.

 

onCreate에서 쓰시지 마시고 onCreateView에서 ..

 

Button btn3 = (Button) findViewById(R.id.morebtn1);

이 아니라

Button btn3 = (Button) moreview.findViewById(R.id.morebtn1); 

이렇게 되야겠죠.

relz (2,550 포인트) 님이 2015년 4월 20일 답변
...