我正在编写一个关于片段的程序,其中一个片段处于纵向模式,两个片段处于横向模式。mainfrag1 包含一个纵向片段和两个横向片段。当我将活动从纵向切换到横向并按照下面的代码时,fr1 和 fr2 是片段 1 和片段 2 的 ID
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.mainfrag1);
FragmentManager fm=getFragmentManager();
try
{
f2=(Fragment)fm.findFragmentById(R.id.fr2);
}catch(Exception ep){}
if(f2!=null)
{
Toast.makeText(this, "it is both", Toast.LENGTH_SHORT).show();
et=(EditText)f2.getView().findViewById(R.id.editText1);
}
else
Toast.makeText(this, "it is only one", Toast.LENGTH_SHORT).show();
}
当我们从横向切换回纵向时,检查 f2!=null 返回 true,但 f2.getView 返回 null。为什么 f2 不在屏幕上时不给出 null 以及如何更新代码以使其正常运行,请清楚这一点。谢谢