Saturday, September 24, 2011

[android-developers] Re: ListFragment with a custom view hierarchy?

Also to note, I'm using android-support-v4.

From the android docs, it clearly states:

"ListFragment has a default layout that consists of a single list
view. However, if you desire, you can customize the fragment layout by
returning your own view hierarchy from onCreateView(LayoutInflater,
ViewGroup, Bundle). To do this, your view hierarchy must contain a
ListView object with the id "@android:id/list" (or list if it's in
code)."

On Sep 23, 6:18 pm, worked <contact.edmur...@gmail.com> wrote:
> I'm attempting to learn fragments and to customize my fragment layout
> by returning a view hierarchy from onCreateView(LayoutInflater,
> ViewGroup, Bundle). This inflates my custom view, but behind the
> default ListView, I see everything at once. Any help is appreciated.
> Thanks!
>
> --MyActivity.java--
> public class MyActivity extends FragmentActivity{
>     @Override
>     public void onCreate(Bundle savedInstanceState) {
>         super.onCreate(savedInstanceState);
>
>         if
> (getSupportFragmentManager().findFragmentById(android.R.id.content) ==
> null) {
>             ArrayListFragment list = new ArrayListFragment();
>
> getSupportFragmentManager().beginTransaction().add(android.R.id.content,
> list).commit();
>         }
>     }
>
>     public static class ArrayListFragment extends ListFragment {
>
>         @Override
>         public View onCreateView(LayoutInflater inflater, ViewGroup
> container, Bundle savedInstanceState) {
>             //inflates the main.xml resource, but the default ListView
> is still generated on top of this view.
>
> inflater.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
>             inflater.inflate(R.layout.main, container);
>             return super.onCreateView(inflater, container,
> savedInstanceState);
>         }
>
>         @Override
>         public void onActivityCreated(Bundle savedInstanceState) {
>             super.onActivityCreated(savedInstanceState);
>             String List[] = {"Larry", "Moe", "Curly"};
>             setListAdapter(new ArrayAdapter<String>(getActivity(),
> android.R.layout.simple_list_item_1, List));
>         }
>     }
>
> }
>
> --main.xml--
> <?xml version="1.0" encoding="utf-8"?>
> <LinearLayout
>   xmlns:android="http://schemas.android.com/apk/res/android"
>   android:orientation="vertical"
>   android:layout_width="match_parent"
>   android:layout_height="match_parent"
>   android:paddingLeft="8dp"
>   android:paddingRight="8dp">
>
>   <Button
>     android:layout_width="fill_parent"
>     android:layout_height="wrap_content"
>     android:text="THIS IS A BUTTON" />
>
>   <ListView
>     android:id="@android:id/list"
>     android:layout_width="match_parent"
>     android:layout_height="match_parent"
>     android:background="#00FF00"
>     android:layout_weight="1"
>     android:drawSelectorOnTop="false" />
>
>   <TextView
>     android:id="@android:id/empty"
>     android:layout_width="match_parent"
>     android:layout_height="match_parent"
>     android:background="#FF0000"
>     android:text="No data" />
> </LinearLayout>

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

No comments:

Post a Comment