Java 用于单个视图的Android绘图应用程序需要在多视图底部导航活动应用程序中工作
我是一个全新的安卓开发人员,目前相当迷茫。当我尝试在我的应用程序中启用绘图到视图时,我遵循了这一点,这是一个Java 用于单个视图的Android绘图应用程序需要在多视图底部导航活动应用程序中工作,java,android,bottomnavigationview,Java,Android,Bottomnavigationview,我是一个全新的安卓开发人员,目前相当迷茫。当我尝试在我的应用程序中启用绘图到视图时,我遵循了这一点,这是一个的“底部导航活动”项目,具有三个选项卡或片段。请参见下面的屏幕截图: 问题在于,本教程适用于具有单个视图和单个标准MainActivity的应用程序。在本例中,以下代码用于项目的MainActivity.java类中的onCreate()方法: public class MainActivity extends AppCompatActivity { super.onCreate(sav
的“底部导航活动”
项目,具有三个选项卡或片段。请参见下面的屏幕截图:
问题在于,本教程适用于具有单个视图和单个标准MainActivity的应用程序。在本例中,以下代码用于项目的MainActivity.java
类中的onCreate()
方法:
public class MainActivity extends AppCompatActivity {
super.onCreate(savedInstanceState):
PaintView paintView = new PaintView(content: this):
setContentView(paintView);
}
}
当我构建一个单视图应用程序时,代码非常有效。没有问题。但是,在我的“底部导航活动”
项目中,事情无法正常工作,因为片段使用的ViewModel
类型没有提供视图
类所急需的方法。我的应用程序有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;
}
}
请参见下面的屏幕截图,以了解我尝试过的操作。您将看到,我在项目中添加了一个名为PaintView
(与教程中创建的一样)的View
类,其中包含所有图形代码
不幸的是,它会生成以下编译错误:
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您正在尝试使用
PaintView
类创建一个HomeViewModel
对象,这是不可能的。如果要将PaintView
设置为HomeFragment
的视图,则需要将其对象返回为:
//you can return any kind of view object as you like
public View onCreateView(@NonNull LayoutInflator inflater, ViewGroup container, Bundle savedInstanceState) {
PaintView homeFragmentView = new PaintView(requireContext());
// PaintView class must extends View class
return homeFragmentView;
}
我希望,这会有帮助
真管用!令人惊叹的!非常感谢你解除了我的封锁!我非常感激!