Java android onCreateView效率
在我的应用程序中,我只有一个activityJava android onCreateView效率,java,android,Java,Android,在我的应用程序中,我只有一个activitymain activity,在它的activity\u main.xml中,我有标记,我使用Frame以如下方式更改屏幕内容: FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.id_of_FrameLayout, myFrameInstance)
main activity
,在它的activity\u main.xml
中,我有
标记,我使用Frame
以如下方式更改屏幕内容:
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.id_of_FrameLayout, myFrameInstance)
.commit();
在调用onCreateView
之前,是否可以在此框架中初始化一些字段(如按钮
s、文本视图
s、按钮列表
s)?现在,我每次都在onCreateView
中初始化它们,因为只有在这个地方我才有LayoutInflater
,我用它来充气frame\u this\u screen.xml
,但在我看来它并不是真正有效的
因此,我想在我的Frame
类中编写一些setUp()
方法,并将LayoutInflater
之类的内容从MainActivity
传递给它,以初始化此处的所有字段,并在onCreateView
中仅对这些字段进行一些小的更改。如何将这样的LayoutInflater
传递给我的setUp
方法?您只能在onCreateView()中初始化您的内容可能只是创建一个方法,您可以调用并传递充气器和视图组的参数来初始化您的内容,并从onCreateView()方法调用它,如
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
setUp(inflater,container);
/*rest of the method*/
}
也
您可以从这样的上下文(检查它是否为!=null)或pick获取对LayoutInflater的引用
还要确保不要在过早优化上花费太多时间-进行一些测量,看看onCreateView()
是否确实存在问题,但这并不能解决问题。每次调用onCreateView
或在setUp
中,我仍然会初始化所有字段,每次我都必须检查对象是否为null
,并且只有在null
时才初始化,但是我的代码会变得一团糟。问题是,如果你在onCreateView()之前尝试初始化它
method,您的应用程序可能会由于对充气器和视图组的空引用而崩溃
private void setUp(LayoutInflater inflater,ViewGroup parent){
/*Set up your content here*/
}
(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)