デフォルトのタブが「ホーム」である典型的なアクションバー設定(ActionbarSherlock)があります。
アプリが起動すると、タブが選択されます。フラグメントが作成/コミットされると、アプリケーションがクラッシュします。
残りのタブはフラグメントを適切に作成/置換するため、おそらくコードのその部分ではありません。ライフサイクルプロセスに関係していると思いますか?
これはかなり不可解です。いくつかのガイダンスが欲しいです。
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.Tab;
import com.actionbarsherlock.app.SherlockFragmentActivity;
public class BaseActivity extends SherlockFragmentActivity implements ActionBar.TabListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
containerId = android.R.id.content;
getSupportActionBar().addTab(homeTab);
getSupportActionBar().addTab(questionsTab);
getSupportActionBar().addTab(newsTab);
Tab [] tabs = new Tab []{homeTab, questionsTab, newsTab};
stackManager = new StackManager(this, tabs) }
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// this crashes the application
if (tab.getText()== HOME) {
this.loadFragment(new AppTabBFirstFragment("home"));
}
if (tab.getText()== QUESTIONS) {
this.loadFragment(new AppTabBFirstFragment("qns"));
}
if (tab.getText()== NEWS) {
this.loadFragment(new AppTabBFirstFragment("news"));
}
}
public void loadFragment(Fragment frag){
getSupportFragmentManager().beginTransaction().replace(containerId , frag).commit();
// ログ猫