Java 找不到id为的视图。。。用于片段(Android应用程序)
当我试图调用片段布局时,我遇到了以下错误。这是代码 主要活动Java 找不到id为的视图。。。用于片段(Android应用程序),java,android,android-fragments,Java,Android,Android Fragments,当我试图调用片段布局时,我遇到了以下错误。这是代码 主要活动 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void showFragOne
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。
frag_one是FragOne碎片的布局
片段类
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的方式是错误的。第一个参数是将承载片段的视图组的id,而不是片段本身的布局。比如说
FT.add(android.R.id.content, new FragOne());
如何找到要承载的视图的id?默认情况下,希望片段在主活动中的最后一个控件之后添加。通常在要处理片段的布局中声明它。它可能是一个用于实例的框架布局,请您更清楚一点。例如,正如您所说,我在activity_main中添加了FrameLayout。此FrameLayout本身没有任何id。它必须与其中一个视图进行映射。那么,如何在FragmentTransaction.add.中提供此FrameLayout的Id,然后给它一个Id并使用它呢