在默认选项卡中创建片段会导致应用程序崩溃

时间:2012-12-28 17:11:27

标签: android android-fragments android-actionbar actionbarsherlock

我有一个典型的操作栏设置(ActionbarSherlock),我的默认选项卡是“Home”。

应用启动时,会选中该标签。创建/提交片段时,它会使应用程序崩溃。

其他选项卡正确创建/替换片段,因此它可能不是代码的一部分。我怀疑它与生命周期过程有关吗?

这很令人费解,会喜欢一些指导。

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();

// LOG CAT

enter image description here

0 个答案:

没有答案