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

안녕하세요 fragment의 소스를 activity로 옮기려합니다!

0 추천
public void connect(IMqttActionListener callback) {
    if (((MainActivity) getActivity()) == null)
        return;
    else
        try {
            ((MainActivity) getActivity()).connect(callback);
        } catch (MqttException e) {
            e.printStackTrace();
        }
}  이 소스를 fragment에서 쓰다가 activity에서 쓰게됐는데..
getActivity부분을 수정해야하는데 어떻게 수정해야할까요?

태양마트 (120 포인트) 님이 2017년 11월 23일 질문

2개의 답변

0 추천
this 로 해도 되긴 하는데 메모리 문제 날것이니

activity 이름.this 로 하세요

예로 MainActivity 였으면 MainActivity.this
aucd29 (218,390 포인트) 님이 2017년 11월 24일 답변
0 추천
((MainActivity)getActivity()).메서드명;

이 코드는 액티비티 안에 Fragment가 포함되어있을때 상위인 액티비티에 있는 메서드를 부르는 것이기 때문에 가능하지만

fragment 를 Activity로 바꾸신다면

Activity 안에 Activity가 포함되는 것이 가능할지 모르겠습니다. Activity에 메서드를 다른 Activity에서 사용하기 위해서는 connect 메서드를 static 으로 변경하여 사용하시면 될듯합니다..
yuhyeon (420 포인트) 님이 2017년 11월 28일 답변
...