안드로이드 질문입니다. Udacity에서 Developing Android Apps를 공부하고 있습니다.
MainActivity에서 onCreate()에 의해 Fragment가 이중으로 생성되는 문제인데요.
![image](https://lh3.googleusercontent.com/n2MLN0dNgiD7EWB_Ji42ogCbrqtAr1BFBeV-g7j5zpjeuTuVklgNQN_LYJ4vW1S0uGVzC-1ayN2-fo0CmhEPC4DgNERk6tH8Ulyle6jMcahpyfIDkPLW71fpT-9V9yE1=s1600)
검색을 해본 결과 예제에서는 MainActivity.java의 onCreate()에 다음 코드를 삽입하는데 최신 버전의 Android Studio가 XML 파일에 자동으로 코드를 삽입하기 때문에 Fragment가 Activity에 겹쳐지는 것이라고 합니다.
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment, new ForecastFragment())
.commit();
}
해결책은 의외로 간단한데 해당 코드를 삭제하면 됩니다.;;
문제는… 진도를 더 나가다보니 Fragment Tag를 이용해서 Fragment를 호출하는 과정에 와 보니 이 부분을 간단히 삭제하기가 어렵다는 점입니다. 실제 코드는 이렇게 들어가야 하는데 역시나 위와 같이 Fragment가 중복되는 현상이 벌어집니다.
@Override
protected void onCreate(Bundle savedInstanceState) {
mLocation = Utility.getPreferredLocation(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment, new ForecastFragment(), FORECASTFRAGMENT_TAG)
.commit();
}
}
Fragment가 중복되지 않도록 Fragment Tag를 사용할 수 있는 방법 없을까요?