0

내 응용 프로그램에서 FragmentActivities를 사용하고 서로 전환 할 수있는 중첩 된 활동으로 TabHost를 구현해야합니다. 나는이 목적을 위해 ActivityGroup를 사용tabHost에 ActivityGroup이있는 중첩 된 FragmentActivities

public class CustomActivityGroup extends ActivityGroup { 

View rootView; 

public static CustomActivityGroup group; 

private ArrayList<View> history; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.history = new ArrayList<View>(); 
    group = this; 

     View view = getLocalActivityManager().startActivity("RegisterActivity", new Intent(this,RegisterActivity.class)) 
     .getDecorView(); 
     replaceView(view); 
} 

public void replaceView(View v) { 

    history.add(v); 

    setContentView(v); 
} 

public void back() { 
    try { 
     if (history.size() > 0) { 
     history.remove(history.size() - 1); 
     if (history.size() > 0) { 
      setContentView(history.get(history.size() - 1)); 
     } else { 
      finish(); 
     } 
    } else { 
     finish(); 
    } 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 
} 

public int getHistorySize() { 
    return history.size(); 
} 

@Override 
public void onBackPressed() { 
    try { 
     CustomActivityGroup.group.back(); 
    } catch (Exception ex) { 

    } 
    return; 
} 
} 

나는이 같은 다른 FragmentActivity 전환 :

Intent i = new Intent(this, RegisterActivityCompl.class); 

     View view = CustomActivityGroup.group.getLocalActivityManager() 
     .startActivity("RegisterActivityCompl", i 
     .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) 
     .getDecorView(); 

     // Again, replace the view 
     CustomActivityGroup.group.replaceView(view); 

다른 활동을 성공적으로 전환하지만 즉시 초기 상태로 전환됩니다. 그 이유는 무엇일까요?

답변

0

this 튜토리얼

을 사용하여 문제를 해결했습니다.