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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值