ListView优化实例

来源:互联网 发布:三维人体软件 编辑:程序博客网 时间:2024/06/11 20:53

1 java 代码

package com.example.androidlistviewdemo;import java.util.ArrayList;import java.util.List;import android.app.ListActivity;import android.content.Context;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;public class MultipleItemsList extends ListActivity {      private MyCustomAdapter mAdapter;      @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         mAdapter = new MyCustomAdapter(this);         FileInfoBean fileInfoBean;        for (int i = 0; i < 50; i++) {         fileInfoBean = new FileInfoBean();            mAdapter.addItem(fileInfoBean);         }         setListAdapter(mAdapter);     }      class FileInfoBean{    private String title = "Title";    private String iconPath = null;    private String message = "I am Win";    private String time = "20130425";public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public String getIconPath() {return iconPath;}public void setIconPath(String iconPath) {this.iconPath = iconPath;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}    }    private class MyCustomAdapter extends BaseAdapter {      private List<FileInfoBean> mData = new ArrayList<FileInfoBean>();        private LayoutInflater mInflater;          public MyCustomAdapter(Context context) {             mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);         }          public void addItem(final FileInfoBean item) {             mData.add(item);             notifyDataSetChanged();         }          @Override         public int getCount() {             return mData.size();         }          @Override         public FileInfoBean getItem(int position) {             return mData.get(position);         }          @Override         public long getItemId(int position) {             return position;         }          @Override         public View getView(int position, View convertView, ViewGroup parent) {             System.out.println("getView " + position + " " + convertView);             ViewHolder holder = null;             if (convertView == null) {                 convertView = mInflater.inflate(R.layout.listviewitem, null);                 holder = new ViewHolder();                 holder.titleTV = (TextView)convertView.findViewById(R.id.TitleTV);                 holder.iconView = (ImageView) convertView.findViewById(R.id.IconView);                holder.messageTV = (TextView) convertView.findViewById(R.id.messageTV);                holder.timeTV = (TextView) convertView.findViewById(R.id.TimeTV);                convertView.setTag(holder);             } else {                 holder = (ViewHolder)convertView.getTag();             }             holder.titleTV.setText(mData.get(position).getTitle());             holder.messageTV.setText(mData.get(position).getMessage());            holder.timeTV.setText(mData.get(position).getTime());            holder.iconView.setBackgroundResource(R.drawable.ic_launcher);            return convertView;         }      }      public static class ViewHolder {    public ImageView iconView;        public TextView titleTV;         public TextView messageTV;        public TextView timeTV;    } } 


 

 

 

2 xml代码

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/itemLy"    android:orientation="horizontal" >        <ImageView android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/IconView"        android:layout_alignParentLeft="true"        android:layout_centerVertical="true"        android:padding="10dp"        android:src="@null"/>        <TextView android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="First Titile "        android:layout_toRightOf="@+id/IconView"        android:padding="10dp"        android:textSize="15sp"        android:gravity="center"        android:id="@+id/TitleTV"/>        <TextView android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/messageTV"        android:layout_below="@+id/TitleTV"        android:layout_alignLeft="@+id/TitleTV"        android:padding="10dp"        android:textSize="15sp"        android:gravity="center"        android:text="Message of the item"/>       <TextView android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/TimeTV"        android:layout_centerVertical="true"        android:layout_alignParentRight="true"        android:padding="10dp"        android:textSize="15sp"        android:gravity="center"        android:text="This item time"/>        </RelativeLayout>

原创粉丝点击