Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 即使不在布局中,片段也不为空_Android - Fatal编程技术网

Android 即使不在布局中,片段也不为空

Android 即使不在布局中,片段也不为空,android,Android,我正在开发一个双窗格的应用程序,它的外观会根据屏幕方向而变化。在纵向模式下,应用程序仅显示ListFragment。在横向视图中,我有一个ListFragment和一个只包含TextView的DescriptionFragment 在纵向模式下,当我单击ListView中的某个项目时,应用程序应在另一个包含DescriptionFragment的活动中向我显示描述。 另一方面,在横向模式下,描述应该出现在同一布局的DescriptionFragment中 它在纵向模式下运行良好,甚至当我切换到横

我正在开发一个双窗格的应用程序,它的外观会根据屏幕方向而变化。在纵向模式下,应用程序仅显示ListFragment。在横向视图中,我有一个ListFragment和一个只包含TextView的DescriptionFragment

在纵向模式下,当我单击ListView中的某个项目时,应用程序应在另一个包含DescriptionFragment的活动中向我显示描述。 另一方面,在横向模式下,描述应该出现在同一布局的DescriptionFragment中

它在纵向模式下运行良好,甚至当我切换到横向模式时。当我从横向返回到纵向时,问题出现了

在下面的代码中,fragment1是布局中DescriptionFragment的id。在纵向模式下,f为空,我们转到另一个活动。当处于横向时,f不为空,它工作。但当我们返回到纵向模式时,f不是null,但TextView是null,应用程序崩溃

当我们回到肖像,为什么它能够找到碎片,即使它不在布局中

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_list);
        ListView lv = (ListView) findViewById(android.R.id.list);
        final FragmentManager fm = getSupportFragmentManager();
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Fragment f = fm.findFragmentById(R.id.fragment1);
                if (f == null) {
                    Intent p = new Intent(MyListActivity.this, DescriptionActivity.class);
                    p.putExtra("pos", i);
                    startActivity(p);
                } else {
                    TextView tv = (TextView) findViewById(R.id.description);
                    if (tv != null)
                        tv.setText(citiesdata[i]);
                }
            }
        });
    }
}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u my\u列表);
ListView lv=(ListView)findViewById(android.R.id.list);
final FragmentManager fm=getSupportFragmentManager();
lv.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
片段f=fm.findFragmentById(R.id.fragment1);
如果(f==null){
Intent p=新的Intent(MyListActivity.this,DescriptionActivity.class);
p、 putExtra(“pos”,i);
星形触觉(p);
}否则{
TextView tv=(TextView)findViewById(R.id.description);
如果(电视!=null)
tv.setText(citiesdata[i]);
}
}
});
}
}