Android活动的碎片化

Android活动的碎片化,android,android-fragments,Android,Android Fragments,我正在尝试设计我的应用程序,但遇到了一些问题。在开始阶段,我在不同的活动中对每件事进行编码,以确保每件事都有效。现在一切都好了,我开始着手设计。我试图用片段来代替活动 我的问题是将代码从活动复制到片段中,当我这样做时,我会面临无数错误,比如findViewById不工作,以及其他功能在移动到片段时似乎专注于不工作的活动 是否有一种迁移技术可以用来将活动更改为片段?或者我必须更改每个函数和错误以适应新的片段吗?对此没有迁移技术。您将不得不手动解决您遇到的所有错误。一般来说,你可以这样做 无论您在哪

我正在尝试设计我的应用程序,但遇到了一些问题。在开始阶段,我在不同的活动中对每件事进行编码,以确保每件事都有效。现在一切都好了,我开始着手设计。我试图用片段来代替活动

我的问题是将代码从活动复制到片段中,当我这样做时,我会面临无数错误,比如
findViewById
不工作,以及其他功能在移动到片段时似乎专注于不工作的活动


是否有一种迁移技术可以用来将活动更改为片段?或者我必须更改每个函数和错误以适应新的片段吗?

对此没有迁移技术。您将不得不手动解决您遇到的所有错误。一般来说,你可以这样做

  • 无论您在哪里使用
    findViewById
    ,现在都需要执行
    view.findViewById(R.id.view\u id),其中
    视图
    片段
    内的膨胀视图
  • 任何专注于或使用
    活动
    上下文的功能都应以
    getActivity()
    作为前缀
  • 无论您在何处使用
    this
    或类似于
    MyActivity.this
    ,都应将其替换为
    getActivity()

  • 这方面没有迁移技术。您将不得不手动解决您遇到的所有错误。一般来说,你可以这样做

  • 无论您在哪里使用
    findViewById
    ,现在都需要执行
    view.findViewById(R.id.view\u id),其中
    视图
    片段
    内的膨胀视图
  • 任何专注于或使用
    活动
    上下文的功能都应以
    getActivity()
    作为前缀
  • 无论您在何处使用
    this
    或类似于
    MyActivity.this
    ,都应将其替换为
    getActivity()

  • 首先,在谷歌或YouTube上查找关于如何使用
    片段的基本教程,以及
    活动的区别

    例如,
    findViewById
    错误是因为在片段的
    onCreateView
    方法中,在膨胀片段的布局后,如下所示:

    View fragmentView = inflater.inflate(R.layout.fragment_host, container, false);
    
    您需要使用findVyewById方法,使用我们刚刚启动的
    fragmentView
    。就像这样:

     viewPager = (ViewPager) fragmentView.findViewById(R.id.pager);
    

    如果使用
    片段
    ,通常
    导航抽屉
    是一个很好的组件(在
    工具栏
    中带有汉堡包图标的组件)。要实现这一点,请查阅有关新的
    导航视图
    抽屉布局
    的教程。为此,您需要
    设计支持库
    ,但本教程将对此进行解释。在托管此
    抽屉布局的主要活动的布局xml中,您将有一个
    框架布局
    ,您可以在其中放置应用程序内容的片段。

    在Google或YouTube上查找有关如何使用
    片段的基本教程,以及
    活动
    的区别是什么

    例如,
    findViewById
    错误是因为在片段的
    onCreateView
    方法中,在膨胀片段的布局后,如下所示:

    View fragmentView = inflater.inflate(R.layout.fragment_host, container, false);
    
    您需要使用findVyewById方法,使用我们刚刚启动的
    fragmentView
    。就像这样:

     viewPager = (ViewPager) fragmentView.findViewById(R.id.pager);
    

    如果使用
    片段
    ,通常
    导航抽屉
    是一个很好的组件(在
    工具栏
    中带有汉堡包图标的组件)。要实现这一点,请查阅有关新的
    导航视图
    抽屉布局
    的教程。为此,您需要
    设计支持库
    ,但本教程将对此进行解释。在承载此
    DrawerLayout
    的主要活动的布局xml中,您将有一个
    FrameLayout
    ,您可以在其中放置应用程序内容的片段。

    请参阅并感谢您的回复,我将查看这些内容!谢谢你的回复,我会看一下的@JJSmith:很乐意帮忙。@JJSmith:很乐意帮忙。非常感谢你的建议,我会看更多的文档。谢谢你的建议,我会看更多的文档