安卓ListView基础应用

listview简单描述

  主页面:

      

package com.example.listview;

import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity {
    private ListView lv;
    private MyAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv = (ListView) findViewById(R.id.lv);
        adapter = new MyAdapter();
        lv.setAdapter(adapter);
    }

    private class MyAdapter extends BaseAdapter {
        /**
         * listview的条目总数
         */
        public int getCount() {
            return 30;
        }

        /**
         * 每个item的内容
         */
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder;
            // 进行convertView条目的复用
            if (convertView != null) {// 如果convertView不存在,进行填充
                holder = (ViewHolder) convertView.getTag();// 对相同类型的item类型进行复用
            } else {// 如果convertView存在,进行复用
                convertView = View.inflate(MainActivity.this,
                        R.layout.item_list, null);
                holder = new ViewHolder(convertView);
                convertView.setTag(holder);
            }

            holder.tv.setText("条目" + position);//设置item里面的具体内容

            return convertView;
        }

        public Object getItem(int position) {
            return null;
        }

        public long getItemId(int position) {
            return 0;
        }

    }

    /**
     * 每个item里面的控件,抽取成一个类,可以节省时间,优化的一方面
     * 
     * @author JYcainiao
     * 
     */
    private class ViewHolder {
        @ViewInject(R.id.tv_item)//注解出item中的控件
        private TextView tv;

        public ViewHolder(View view) {
            ViewUtils.inject(this, view);//注解必须用到   this代表当前的item,view用来注解
        }

    }

}

主页面的activity

  

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <ListView
        android:fastScrollEnabled="true"
        android:id="@+id/lv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>

用来填充liseview的item

  

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tv_item"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>
原文地址:https://www.cnblogs.com/fengchuxiaodai/p/5170185.html