Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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 如何在android studio中将片段分离到不同的文件?_Java_Android_Android Fragments - Fatal编程技术网

Java 如何在android studio中将片段分离到不同的文件?

Java 如何在android studio中将片段分离到不同的文件?,java,android,android-fragments,Java,Android,Android Fragments,我正试图在android studio中开发一个android应用程序,我一直在mainActivity类中编写越来越多的片段。我的问题是如何将这些文件分离到另一个文件?也许我做得不对,如果是的话,有人能告诉我该怎么做吗 我的代码: public class MainActivity extends ActionBarActivity implements NavigationDrawerFragment.NavigationDrawerCallbacks { . . . public

我正试图在android studio中开发一个android应用程序,我一直在mainActivity类中编写越来越多的片段。我的问题是如何将这些文件分离到另一个文件?也许我做得不对,如果是的话,有人能告诉我该怎么做吗

我的代码:

public class MainActivity extends ActionBarActivity
    implements NavigationDrawerFragment.NavigationDrawerCallbacks {
.
.
.
public static class PlaceholderFragment1 extends Fragment {...}
public static class PlaceholderFragment2 extends Fragment {...}
public static class PlaceholderFragment3 extends Fragment {...}
}

您可以毫无问题地将它们作为单独的类写入同一个包中,然后直接使用它们。否则,将它们写在单独的包中,并作为任何其他类导入。

因为它们是静态内部类,AndroidStudio可以轻松地为您重构它们。选择
占位符fragment1
(只需将文本光标放在上面),然后按F6(或右键单击片段名称->重构->移动),然后选择“将内部类[片段名称]移动到更高级别”,如果需要,更改名称和包,然后点击重构


为一个片段拥有一个静态的内部类是很好的(从技术上讲是可行的),但是如果您想在另一个活动中重用该片段,最好将其重构出来。此外,大多数人喜欢将类保持尽可能小,如果片段的功能在逻辑上与活动分离,则没有理由将其保持为内部类。

首先,您需要创建一个新类(新类文件)

注意:您将需要为必须定义片段逻辑的每个片段创建这样的类

public class MyFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.article_view, container, false);
}
//logic here
}
然后您可以在MainActivity中使用它,它扩展了FragmentActivity,如:

MyFragment fragment= new MyFragment();
或者如果存在的话

fragment= (MyFragment)getSupportFragmentManager().findFragmentByTag(FRAGMENT_TAG);
您可以通过以下方式设置要查看的片段:

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
            ft.replace(R.id.frameLayout, fragment, FRAGMENT_TAG);
            ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
            ft.addToBackStack(null);
            ft.commit();

非常感谢你。基本上,前面的答案是一样的,但有了这个,我可以解决它字面上在3点击。了不起的人。再次感谢您先生,这是一件美好的事情:)