Понимание фрагментов деятельности
-
13-12-2019 - |
Вопрос
У меня есть приложение, где это только таймер с целым кучей специальных методов в основной активности. Это отлично работает без проблем. Теперь, что у меня его работают, я пытаюсь включить его в гораздо более сложное приложение, в котором я собираюсь вставлять таймер в многочисленные места через фрагменты.
Должен ли я включить все мои специальные методы в моей фрагментной деятельности? Т.е.
public class Timer_fragment extends android.support.v4.app.Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.timer_frag, container, false);
}
//SHOULD I insert my special methods here?
}
.
или я должен включить их в мою главную?
Я спрашиваю, потому что я пробовал оба пути, и способность фрагмента, как путь мне дал мне ошибки в Java, но положив их в мою главную, дал мне ошибки во время выполнения. По сути, у меня есть таймер, который отлично работает как автономное приложение, но я пытаюсь превратить его в фрагмент, чтобы я мог подключить его к нескольким местам в моем приложении.
<Сильные> Примеры «специальных методов»: Я вижу представление в макете и обновите его в соответствии с новыми числами, вводами на таймере. Эти методы требуют раздувания представления до того, как они могут быть использованы.
Примечание. Ошибки во время выполнения, которые я испытываю, являются нулевыми элементамиЭxceptions.
Решение
Идея фрагмента состоит в том, что она является повторной разрезе (то есть фрагмент) активности, которую можно использовать в других видах деятельности, или даже в том же деятельности, но с добавлением или отсутствием других фрагментов.
В приложении Gmail Например, список всех электронных писем в почтовом ящике является одним фрагментом, а фактическое содержимое электронной почты является еще одним фрагментом. На планшете в ландшафте режиме обоих показаны. Однако телефон в портретении, однако, будет отображаться только один из двух фрагментов одновременно.
Таким образом, каждый фрагмент должен инкапсулировать все функции и компоненты пользовательского интерфейса, необходимые для использования этого фрагмента. Это означает, что все ваши «специальные» методы, такие как надувные изображения XML фрагмента, должны произойти в фрагменте.Деятельность (или действия), которая использует фрагмент, следует только использовать только фрагментманагеру (или аналогичный метод), чтобы добавить свой фрагмент к макету активности. Родительская активность фрагмента также должна обрабатывать связь между фрагментами и другими компонентами, такими как другие виды деятельности, фрагменты или потоки.