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


  • 相关阅读:
    国外pip源下载太慢,修改成国内pip源
    i++和i--
    CSS3之太极图源代码
    对 Vue 的理解(一)
    CSS 盒子模型及 float 和 position
    Notes about Vue Style Guide
    TypeScript 入门笔记
    flex 布局
    git rebase 和 git merge 总结
    理解JavaScript作用域
  • 原文地址:https://www.cnblogs.com/java20130722/p/3206867.html
Copyright © 2011-2022 走看看