Как разделить фрагменты на разные файлы в Android studio?
Я пытаюсь разработать приложение для android в Android studio, и я продолжаю писать все больше и больше фрагментов в классе 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 {...}
}
3 ответов
поскольку они являются статические внутренние классы, AndroidStudio можете легко рефакторинг это для вас. Выберите PlaceholderFragment1
(просто поместите на него текстовый курсор) и нажмите 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();