以编程方式在Fragment中膨胀XML

时间:2012-09-08 03:29:15

标签: android xml android-layout android-fragments layout-inflater

我有MainActivity.java作为我的第一个片段,另一个片段是Fragment.java,其中有一个TabHost。当用户点击MainActivity中的按钮时,我想在第二个片段的Tab1中膨胀XML。

OnClickListener中按钮的

MainActivity如下:

btOkButton.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {

        LayoutInflater lf = getLayoutInflater();
        Fragment.updateTab1(lf);                
    }               
});

Fragment类中的updateTab1(..)方法是:

public static void updateTab1(LayoutInflater lf) {
        lf.inflate(R.layout.xml_to_inflate, (ViewGroup)llTab1, false);
    }

其中:

llTab1 = (LinearLayout)getActivity().findViewById(R.id.tab1);

我这样做时没有得到任何异常,也没有强制关闭。

在Debug中,我可以看到所有这些代码都没有任何异常地运行,但是没有必要的XML被夸大。

1 个答案:

答案 0 :(得分:5)

最后对我有用的是:

在处理片段时,我错过了 onCreate()中的后续行,以使 inflater 对象工作:

inflater = getActivity().getLayoutInflater();

并保持其余代码不变。