Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.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
Java 我想用两个不同的片段使用相同的xml文件_Java_Android_Xml_Android Fragments_Android Studio - Fatal编程技术网

Java 我想用两个不同的片段使用相同的xml文件

Java 我想用两个不同的片段使用相同的xml文件,java,android,xml,android-fragments,android-studio,Java,Android,Xml,Android Fragments,Android Studio,我是android编程新手。我想写一个包含两个片段的android程序。设计将是一样的,但我不能写两次布局文件,因为它有很多小部件,所以有办法处理这个问题吗 如果复制xml文件小部件ID保持不变,并且在java类中无法访问它们…让我们假设您有fragment\u container.xml: <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/fraContaine

我是android编程新手。我想写一个包含两个片段的android程序。设计将是一样的,但我不能写两次布局文件,因为它有很多小部件,所以有办法处理这个问题吗


如果复制xml文件小部件ID保持不变,并且在java类中无法访问它们…

让我们假设您有fragment\u container.xml:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fraContainer"
android:layout_width="match_parent"
android:layout_height="match_parent" />
这将用您想要的片段替换片段布局(容器)

现在让我们检查一下MyFragmentA和MyFragmentB

public class MyFragmentA extends Fragment {

   ...

   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
   {
      View view = inflater.inflate(R.layout.fragment_both, container, false);
      TextView x = (TextView)view.findViewById(R.id.textView);
      x.setText("I am fragment A");
      return view;
   }
   ...
第二个片段呢

public class MyFragmentB extends Fragment {

   ...

   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
   {
      View view = inflater.inflate(R.layout.fragment_both, container, false);
      TextView x = (TextView)view.findViewById(R.id.textView);
      x.setText("I am fragment B");
      return view;
   }
...
两者都通过引用视图对象来膨胀相同的片段_Both.xml,并且都使用具有相同ID的相同TextView


我希望这有助于您理解它。

您可以简单地在更多片段中使用相同的xml文件,如下所示:

片段A

public class FragmentA extends Fragment {
 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View v = inflater.inflate(R.layout.your_layout, container, false);

        ...

        return v;
    }
}
片段B

public class FragmentB extends Fragment {
     @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            View v = inflater.inflate(R.layout.your_layout, container, false);

            ...

            return v;
        }
    }

您是否在每个片段中使用完全相同的XML布局?为什么不能在两个片段中膨胀相同的XML文件?
public class FragmentB extends Fragment {
     @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            View v = inflater.inflate(R.layout.your_layout, container, false);

            ...

            return v;
        }
    }