android onCreateView效率

时间:2015-11-15 15:28:14

标签: java android

在我的应用程序中,我只有一个活动MainActivity,其中activity_main.xml我有<FrameLayout>标记我使用{{1}来更改屏幕内容以这样的方式:

Frame

我可以在调用FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.id_of_FrameLayout, myFrameInstance) .commit(); 之前在Buttons中初始化某些字段(例如TextViewButtonListenerFrame s)吗?现在我每次都在onCreateView初始化所有这些内容,因为只有在这个地方我才onCreateView使用了我LayoutInflater,但在我看来并不是真的有效。

所以我想在我的frame_this_screen.xml课程中编写一些setUp()方法,并将Frame之类的内容从LayoutInflater传递给它,以启动我在这个地方的所有字段MainActivity只对这些字段进行一些小的更改。如何将此onCreateView传递给我的LayoutInflater方法?

2 个答案:

答案 0 :(得分:0)

你只能在onCreateView()中初始化你的内容,可能只是创建一个你可以调用的方法,并传入inflater和viewGroup的参数来初始化你的内容并从你的onCreateView()方法调用它,如

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
                  setUp(inflater,container);
     /*rest of the method*/
   }

另外

    private void setUp(LayoutInflater inflater,ViewGroup parent){
               /*Set up your content here*/
     }

答案 1 :(得分:0)

您可以从这样的上下文中获取对LayoutInflater的引用(检查它是否为!= null)或选择another variant

(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)

同时确保您没有花太多时间进行过早优化 - 进行一些测量以查看onCreateView()是否确实存在问题。