2012-10-02 77 views
0

我有一个片段的活动加载一个单一的记录选定的全行,这是第一次正常工作,但如果我改变方向崩溃并抛出“未找到源” 。当我通过线调试线,一些TextView的不可用(返回null),这是我的片段活动代码:Android的方向更改与片段处理的片段活动

@Override 


public void onCreate(Bundle savedInstanceState)` 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.client_layout); 

     if (savedInstanceState==null) 
     { 
      clientActivityViewModel= (ClientActivityViewModel)getLastCustomNonConfigurationInstance(); 

      if(clientActivityViewModel==null) 
      { 
       clientActivityViewModel= new ClientActivityViewModel(getBaseContext()); 
       if (bundle== null) 
       { 
        bundle= getIntent().getExtras(); 
       } 
       clientActivityViewModel.setAccountId(bundle.getString("accountId")); 
       clientActivityViewModel.GetAccountInformation(bundle.getString("accountId")); 
       clientInformationActivity= new ClientInformationActivity(); 
       clientInformationActivity.setAccountInformation(clientActivityViewModel.getAccountInformation()); 

       clientActivityViewModel.GetAccountComplementaryInformation(bundle.getString("accountId")); 
       clientComplementaryInformationActivity= new ClientComplementaryInformationActivity(); 
       clientComplementaryInformationActivity.setAccountComplementaryInformation(clientActivityViewModel.getAccountComplementaryInformation()); 
      } 

      if(clientActivityViewModel!=null) 
      { 
       clientActivityViewModel.GetAccountInformation(clientActivityViewModel.getAccountId()); 
       clientInformationActivity= new ClientInformationActivity(); 
       clientInformationActivity.setAccountInformation(clientActivityViewModel.getAccountInformation()); 

       clientActivityViewModel.GetAccountComplementaryInformation(clientActivityViewModel.getAccountId()); 
       clientComplementaryInformationActivity= new ClientComplementaryInformationActivity(); 
       clientComplementaryInformationActivity.setAccountComplementaryInformation(clientActivityViewModel.getAccountComplementaryInformation()); 

       if (clientActivityViewModel != null) 
       { 
        pager = (ViewPager) findViewById (R.id.pager); 
        MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(getSupportFragmentManager()); 
        adapter.addFragment(clientInformationActivity); 
        adapter.addFragment(clientComplementaryInformationActivity); 
        adapter.addFragment(new ClientAddressActivity()); 
        adapter.addFragment(new ClientPaymentInfoActivity()); 
        adapter.addFragment(new ClientDescriptionInfoActivity()); 
        pager.setAdapter(adapter); 
       } 
      } 
     } 
    } 


    @Override 
    public Object onRetainCustomNonConfigurationInstance() 
    { 
     if (clientActivityViewModel== null) 
     { 
      clientActivityViewModel= new ClientActivityViewModel(getBaseContext()); 
      bundle= getIntent().getExtras(); 
      clientActivityViewModel.setAccountId(bundle.getString("accountId")); 
     } 
     return clientActivityViewModel; 
    } 
+0

我没有看到任何textviews在发布的代码.. – Barak

回答

0

我相信你说的是,当方向改变你的代码不能运行。

如果是这种情况,那么当方向再次改变时Oncreate被调用。这就是为什么你的活动在第一次后没有正确运行。

为了解决这个问题,你有你的清单文件中声明这一点:

android:configChanges="keyboardHidden|orientation" 
android:configChanges="keyboardHidden|screensize" 

最后一行是仅在速效的Android 3.0及以上

+0

应该是'screenSize'。(否则不会编译) – ygesher