Skip to content Skip to sidebar Skip to footer

Android List Inside Layout

i am working on an Android app that needs showing a list[table], inside the layout[view] I come from iPhone dev objC land, and i have an app that shows a table[list] inside the vie

Solution 1:

Yes, of course, you can do that

1) you need to have listholder.xml here, you can scratch anything in you layout view, either imageview, textview..etc. just don't forget to add ListView inside it. for example:

<LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:background="@drawable/head_logo_bg"></LinearLayout><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:background="@drawable/background_label"><TextViewandroid:id="@+id/city_txt"android:layout_width="fill_parent"android:layout_height="wrap_content"android:gravity="center_horizontal"android:layout_gravity="center"android:text="Sydney"android:textStyle="bold"android:textSize="17sp"/></LinearLayout><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:padding="40sp"><ListViewandroid:id="@android:id/list"android:layout_height="wrap_content"android:layout_width="fill_parent"android:layout_centerVertical="true"android:scrollingCache="false"/></LinearLayout>

2) For custom your own list item, you have to create listitem.xml i.e.

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/listitemone"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:padding="10sp"><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_vertical"android:orientation="vertical"><ImageViewandroid:id="@+id/user_image"android:layout_width="80px"android:layout_height="80px"android:layout_alignParentLeft="true"android:layout_marginRight="5px"android:src="@drawable/icon"
                /></LinearLayout><RelativeLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_vertical"android:layout_marginLeft="5sp"android:orientation="vertical"><TextViewandroid:id="@+id/date_label"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/date"android:textStyle="bold"android:textSize="16sp" /><TextViewandroid:id="@+id/date_value"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_alignBaseline="@id/date_label"android:layout_marginRight="20sp"android:textColor="#FFF"android:text="MM/dd/YYYY"android:textStyle="bold"android:textSize="16sp" /></RelativeLayout></LinerLayout>

3) create customAdapter in your activity, it would look like this;

publicclassMyListActivityextendsListActivity {

private ArrayList<Yourdata> yourdata = newArrayList<Youdata>();
        @OverrideprotectedvoidonCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listholder);    
               // yourdata might be array, arraylist etc. MyCustomAdapterlistadapter=newMyCustomAdapter(this, R.layout.listitem, yourdata);

          setListAdapter(listadapter);
}

privateclassMyCustomAdapterextendsArrayAdapter<Yourdata>{
                //this case, i use Yourdata as typeprivate ArrayList<Yourdata> items;

        publicPreviousAdapter(Context context, int textViewResourceId,
                ArrayList<Yourdata> items) {
            super(context, textViewResourceId, items);
            this.items = items;
        }

        @Overridepublic View getView(int position, View convertView, ViewGroup parent) {
            Viewv= convertView;
            if(v == null) {
                LayoutInflatervi= (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = vi.inflate(R.layout.listitem, null);
            }
            Yourdatayt= items.get(position);
            if(yt != null){
             // Don't forget to use v.findView...., otherwise, it might force close when run app.TextViewdateStr= (TextView)v.findViewById(R.id.date_value);

                    dateStr.setText(yt.getDate());
            }   
            return v;
        }



      }


}

P.S. the above code might not exactly right... just give you an idea :) Here is a source about custom list (you might have seen it) hope it useful

http://www.vogella.de/articles/AndroidListView/article.html

Solution 2:

Post a Comment for "Android List Inside Layout"