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教程