Loading layout in onCreateView for custom preference

michael picture michael · Jan 19, 2011 · Viewed 9k times · Source

Can I load layout from xml during onCreateView call, I tried:

  • setLayoutResource(R.layout.test);
  • setWidgetLayoutResource(R.layout.test);

it crashes and I don’t know what to return a ViewGroup parent from a method arguments? I also tried:

  • View view = View.inflate(getContext(), R.layout.test, parent) but it didn’t worked as well.

I named root layout widget_frame but it didn’t helped

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent" 
 android:padding="1dp" android:clickable="false" android:id="@+id/widget_frame">
 <LinearLayout ....

Could you tell me what I’m doing wrong or point me to some working example. Thanks

Update

Below is a woking solution on how to inflate above layout:

    LayoutInflater inflater =  (LayoutInflater)getContext().
                              getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View view = inflater.inflate(R.layout.test, parent, false);

Answer

Daniel L&#243;pez Lacalle picture Daniel López Lacalle · Sep 26, 2012

If you are using onCreateView I guess you are either using a fragment or extending a View. Anyway check this:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.your_layout, container);
}