没有找到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()
是错误的。第一个参数是将要承载片段的ViewGroup
的id
,而不是片段本身的布局。例如
FT.add(android.R.id.content, new FragOne());
如何查找将要主持的视图的ID?默认情况下,期望在主要活动中的最后一次控制之后添加片段。 – Adinarayana 2014-10-10 10:36:06
您通常会在要处理碎片的布局中声明它。它可能是一个FrameLayout,例如 – Blackbelt 2014-10-10 10:37:20
请问你能更清楚吗?正如你所说的,例如,我在activity_main中添加了FrameLayout。这个FrameLayout本身没有任何id。这必须与其中一个视图相映射。那么如何在FragmentTransaction.add()中提供此FrameLayout的Id。 – Adinarayana 2014-10-10 10:50:32