没有找到ID ...的片段(Android应用程序)

问题描述:

当我尝试调用片段布局时,我正在努力处理以下错误。这是代码。没有找到ID ...的片段(Android应用程序)

MainActivity;

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

public void showFragOne(View view){ 
    FragmentManager FM = getFragmentManager(); 
    FragmentTransaction FT = FM.beginTransaction(); 
    FT.add(R.layout.frag_one, new FragOne()); 
    FT.commit(); 
} 

}

showFragOne被称为上ativity_main布局时,按一下按钮。 frag_one是FragOne Fragment的布局 Fragment Class;

public class FragOne extends Fragment{ 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    View view = inflater.inflate(R.layout.frag_one, container, false); 
    return view; 
} 

}

请帮我解决这个。

你打电话的方式add()是错误的。第一个参数是将要承载片段的ViewGroupid,而不是片段本身的布局。例如

FT.add(android.R.id.content, new FragOne()); 
+0

如何查找将要主持的视图的ID?默认情况下,期望在主要活动中的最后一次控制之后添加片段。 – Adinarayana 2014-10-10 10:36:06

+0

您通常会在要处理碎片的布局中声明它。它可能是一个FrameLayout,例如 – Blackbelt 2014-10-10 10:37:20

+0

请问你能更清楚吗?正如你所说的,例如,我在activity_main中添加了FrameLayout。这个FrameLayout本身没有任何id。这必须与其中一个视图相映射。那么如何在FragmentTransaction.add()中提供此FrameLayout的Id。 – Adinarayana 2014-10-10 10:50:32