Android 为什么还没有添加listfragment

Android 为什么还没有添加listfragment,android,android-fragments,android-listfragment,android-lifecycle,android-actionbar-compat,Android,Android Fragments,Android Listfragment,Android Lifecycle,Android Actionbar Compat,我有一个列表片段,在它的布局中包含一个文本视图和列表(id@android:id/list)。在oncreateofactivity中,我将片段添加到容器中 @Override protected void onCreate(Bundle savedInstanceState) { // Log.e(TAG, "Inside OnCreate"); super.onCreate(savedInstanceState); showPdIndeterminate();

我有一个列表片段,在它的布局中包含一个文本视图和列表(id
@android:id/list
)。在oncreateofactivity中,我将片段添加到容器中

@Override
protected void onCreate(Bundle savedInstanceState) {
    // Log.e(TAG, "Inside OnCreate");
    super.onCreate(savedInstanceState);
    showPdIndeterminate();
    ... /* registering some receivers */  ...
    mInstance = this;
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);
    setContentView(R.layout.activity_main);
    myListFragment = getSupportFragmentManager().findFragmentById(
            R.id.container);
    if (myListFragment == null) {
            Log.e(TAG,"Creating new MyListFragment");
            myList = new MyListFragment();
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, myList).commit();
        }
在MyListFragments'
onActivityCreated
中,我调用了一个函数来保存布局中的文本视图

@Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        getActivity().sendBroadcast(new Intent(MainActivity.LIST_INIT));
        selfInterface.onTimeToChangeTitle("Fuzzy Logic Details");

    }
功能是

@Override
public void onTimeToChangeTitle(String title) {
    if (myListFragment != null) {
        // Log.e(TAG, "Inside onTimeToChangeTitle");
        if (myListFragment.isAdded()) {
            Log.e(TAG, "MyListFragment added");
        } else {
            Log.e(TAG, "MyListFragment yet to be  added");
            getSupportFragmentManager().beginTransaction().attach(myListFragment).commit();
        }
    }else{
        Log.e(TAG, "MyListFragment itself null");
    }
    TextView t = (TextView) findViewById(R.id.listTitle);
    if (t != null)
        t.setText(title);
    else
        Log.e(TAG, "onTimeToChangeTitle: textview null");

}
在方向更改后,我看到日志为尚未添加的MyListFragment,因此我尝试了
getSupportFragmentManager().beginTransaction().attach(MyListFragment.commit()但此
无法在此处执行此操作。。。例外情况

我的问题是,由于片段尚未添加,标题没有更改,而且在本例中,如果我尝试
getListView()
,这会引发
列表内容不可用异常

如何确保列表的视图可用并已添加,以便成功更改其内容

注1:我看到
MyListFragment还有待添加
,也可以在按backpress后按launcher图标重新启动应用程序


注意2:我已将
setretinstate(true)
设置为片段。

您的myListFragment将不再为空。因此,添加片段的代码将不会被执行。@Sripathi,如果
myListFragment不再为空
那么为什么我在尝试
getListView()
时出错,您只需调试并跟踪代码流。我强烈希望您添加片段的代码不会被执行,因为您在myListFragment中有R.id.container的引用(它不应该为null)。myListFragment=getSupportFragmentManager().findFragmentById(R.id.container);检查并让我知道。@Sripathi,我将调试并更新,在此之前,我对添加片段的
代码的怀疑将不会执行,因为您在myListFragment中有R.id.container的引用(不应为null)
是,我的代码执行它。您的意思是如果(myListFragment==null)条件为真?您的日志中是否有“创建新的MyListFragment”?