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);
다른 활동을 성공적으로 전환하지만 즉시 초기 상태로 전환됩니다. 그 이유는 무엇일까요?