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


  • 相关阅读:
    docker 知识汇总1-镜像管理
    合并两个git repository
    这一次, 信报箱震惊世界
    python实现括号分组
    linux case菜单代码示例
    oracle 11gR2 client安装(Red Hat Enterprise Linux Server release 5.5 (Tikanga) 安装ORACLE客户端)
    SYSAUX表空间过大处理
    SYSAUX表空间大于33G问题处理
    window 给链接加下划线或取消下划线
    ORACLE11G_win32监听程序不支持服务
  • 原文地址:https://www.cnblogs.com/java20130722/p/3206867.html
Copyright © 2011-2022 走看看