Head Fisrt Android Development读书笔记(6)Lists and Adapters

来源:互联网 发布:软件著作 编辑:程序博客网 时间:2024/05/17 09:06

ListView = ScrollView[ ViewGroup[A View for Each Row] ]


Adapter 

 an interface whose implementations provide data and the display of that data used by the ListView.


public class TimeTrackerAdapter extends BaseAdapter {

...

}


View getView(int index, View view, ViewGroup parent) 

return the view used to display data in the ListView


define time_list_item.xml in /res/layout/

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:layout_width="fill_parent"              android:layout_height="wrap_content"              android:orientation="vertical">    <TextView android:id="@+id/time_view"              android:layout_width="fill_parent"              android:layout_height="wrap_content"              android:textSize="18dp"              android:paddingBottom="5dp"            />    <TextView android:id="@+id/note_view"              android:layout_width="fill_parent"              android:layout_height="wrap_content"              android:textSize="12dp"            /></LinearLayout>




Steps to complete getView

1.Instantiate the View

null input view--> initialize

not null --> repopulating

2.Retrieve the data

3.Set values on the view

R.layout.time_list_item

    public View getView(int i, View view, ViewGroup viewGroup) {        if (view == null) {            LayoutInflater inflater = LayoutInflater.from(viewGroup.getContext());            view = inflater.inflate(R.layout.time_list_item, viewGroup, false);        }        TimeRecord timeRecord = records.get(i);        TextView timeTextView = (TextView) view.findViewById(R.id.time_view);        timeTextView.setText(timeRecord.getTime());        TextView noteTextView = (TextView) view.findViewById(R.id.note_view);        noteTextView.setText(timeRecord.getNote());        return view;    }


connect listview with adapter

    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        ListView listView = (ListView) findViewById(R.id.times_list);        TimeTrackerAdapter timeTrackerAdapter = new TimeTrackerAdapter();        listView.setAdapter(timeTrackerAdapter);    }


原创粉丝点击