我正在使用Android Fragment
,我在调用getString
方法时遇到了问题。它会引发异常
10-12 07:43:18.309: E/AndroidRuntime(2425): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test/com.test.TestActivity}: java.lang.IllegalStateException: Fragment TestFragment{2c691b80 id=0x7f070015} not attached to Activity
我的代码是Activity
中的以下代码:
public void addFragment(IFragment fragment)
{
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
transaction.add(R.id.dual_layout_pane, fragment);
transaction.commit();
if (fragment.getActionBarTitle() != null) setTitle( fragment.getActionBarTitle() );
}
在我的Fragment class
:
@Override
public String getActionBarTitle()
{
return getString(R.string.login_title);
}
该行return getString(R.string.login_title);
发生错误。
有没有办法解决这类问题?
感谢您的宝贵帮助。
答案 0 :(得分:2)
有没有办法解决这类问题?
将标题更改延迟到片段的onAttach()
。 FragmentTransaction
是异步的;它会在commit()
返回时附上。