Как отделить фрагменты к различным файлам в студии Android?

Я пытаюсь разработать приложение для 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 может легко реорганизовать их для вас. Выберите PlaceholderFragment1 (просто наведите на него текстовый курсор) и нажмите F6 (или щелкните правой кнопкой мыши по имени фрагмента -> refactor-> move) и выберите «Переместить внутренний класс [имя фрагмента] на верхний уровень», измените имя и пакет, если вы Хотите и нажмите рефактору.

Наличие статического внутреннего класса для фрагмента отлично (будет работать технически), но если вы хотите повторно использовать фрагмент в другом действии, лучше всего реорганизовать его. Кроме того, большинству людей нравится как можно меньше классов, и если функция фрагмента логически отделена от активности, нет оснований считать ее внутренним классом.

Вы можете без проблем записать их как отдельные классы в одном пакете, а затем просто использовать их. В противном случае напишите их в отдельном пакете и импортируйте их как любой другой класс.

Сначала вам нужно будет создать новый класс (новый файл класса)

ПРИМЕЧАНИЕ. Вы должны создать такой класс для каждого фрагмента, который вы должны определить логику фрагмента.

 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();