zoukankan      html  css  js  c++  java
  • Head Fisrt Android Development读书笔记(6)Lists and Adapters

    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);
        }


  • 相关阅读:
    PHP序列化和反序列化
    移动端纯css超出盒子出现横向滚动条
    css3盒子flex
    css怎么设置2个div同行,第一个固定宽度,第二个占满剩余的部分
    PHP对象基础
    常用header头
    【转载】文件上传那些事儿,文件ajax无刷上传
    简单工厂模式(Simple Factory Pattern)
    单例模式(singleton)
    UML类图
  • 原文地址:https://www.cnblogs.com/java20130722/p/3206867.html
Copyright © 2011-2022 走看看