Java 如何在android studio中将片段分离到不同的文件?
我正试图在android studio中开发一个android应用程序,我一直在mainActivity类中编写越来越多的片段。我的问题是如何将这些文件分离到另一个文件?也许我做得不对,如果是的话,有人能告诉我该怎么做吗 我的代码:Java 如何在android studio中将片段分离到不同的文件?,java,android,android-fragments,Java,Android,Android Fragments,我正试图在android studio中开发一个android应用程序,我一直在mainActivity类中编写越来越多的片段。我的问题是如何将这些文件分离到另一个文件?也许我做得不对,如果是的话,有人能告诉我该怎么做吗 我的代码: public class MainActivity extends ActionBarActivity implements NavigationDrawerFragment.NavigationDrawerCallbacks { . . . public
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点击。了不起的人。再次感谢您先生,这是一件美好的事情:)