Я совершенно новый Android разработчик и сейчас довольно растерян. Я следую этому учебному руководству , поскольку я пытаюсь включить рисование в представлении в моем приложении, которое является проектом "Bottom Navigation Activity"
с тремя вкладками или фрагментами. См. Снимок экрана ниже:
Проблема в том, что учебник предназначен для приложения с одним представлением и одной стандартной MainActivity. В этом случае следующий код используется в методе onCreate()
в классе MainActivity.java
проекта:
public class MainActivity extends AppCompatActivity {
super.onCreate(savedInstanceState):
PaintView paintView = new PaintView(content: this):
setContentView(paintView);
}
}
Когда я создаю приложение с одним представлением, код работает здорово. Без вопросов. Но в моем проекте "Bottom Navigation Activity"
что-то не работает, потому что фрагменты используют тип ViewModel
, который не предлагает столь необходимых методов класса View
. В моем приложении есть 3 фрагмента, первый из которых называется HomeFragment
. Именно на этом фрагменте я хочу, чтобы весь мой рисунок проходил. Метод onCreateView()
по умолчанию для этого фрагмента выглядит так:
public class HomeFragment extends Fragment {
private HomeView Model homeViewModel;
public View onCreateView(@NonNull LayoutInflator inflater, ViewGroup container, Bundle savedInstanceState) {
homeViewModel = ViewModelProviders.of(fragment: this).get(HomeViewModel.class);
View root = inflater.inflate(R.layout.fragment_home, container, attachToRoot: false);
return root;
}
}
См. Снимок экрана ниже, чтобы увидеть, что я пытался сделать. Вы увидите, что я добавил в свой проект класс View
с именем PaintView
(точно такой же, как в учебнике), который содержит весь код рисования.
К сожалению, он генерирует следующую ошибку компиляции:
Inferred type com.example.mobile_testapp_android_2_ui.home.PaintView for type parameter T is not within its bound; should extend androidx.lifecycle.ViewModel
Любые советы о том, как я могу реализовать класс PaintView из учебника, чтобы я буду очень признателен за то, что я могу использовать его методы для рисования на "HomeFragment".
Спасибо и очень сердечно,
Wulf