android listView性能优化

包com.example.ex_000_example;


进口java.util.ArrayList;

进口android.os.Bundle;

进口android.app.Activity;

进口android.util.Log;

进口android.view.LayoutInflater;

进口android.view.Menu;

进口android.view.View;

进口android.view.ViewGroup;

进口android.view.View.OnClickListener;

进口android.widget.BaseAdapter;

进口android.widget.ImageView;

进口android.widget.ListView;

进口android.widget.TextView;


公共类MainActivity扩展活动实现>私人int [] p_w_picpathList=new int [] {R.drawable。qq0 R.drawable.qq1,

R.drawable。qq2 R.drawable。qq3 R.drawable。qq4 R.drawable.qq5,

R.drawable。qq6 R.drawable。qq7 R.drawable。qq8 R.drawable.qq9,

R.drawable。qq10 R.drawable。qq11 R.drawable。qq12 R.drawable.qq13,

R.drawable。qq14};


私人ArrayListdateList=new ArrayList ();

@Override

保护空白> super.oncreate (savedInstanceState);

setContentView (R.layout.activity_main);

//准备数据

(int i=0;我& lt;p_w_picpathList.length;我+ +){

替换替换=new替换(“数据来了”+ i, p_w_picpathList[我]);

dateList.add(替换);

}

ListView ListView=(视图)findViewById (R.id.listView1);

MyAdapter MyAdapter=new MyAdapter ();

//设置适配器

listView.setAdapter (MyAdapter);}

,,,,,,,,//减少控件查找次数

类ViewHolder {

TextView TextView;

ImageView p_w_picpathView;

}


类MyAdapter延伸BaseAdapter {

//设定每行的样式以及显示@Override

公众视线getView (int位置、视图convertView ViewGroup父){

视图膨胀=零;

ViewHolder持有人=零;

如果(convertView==null) {

=new ViewHolder持有人();

//得到布局转换器

LayoutInflater增压泵=getLayoutInflater ();

//将布局xml文件转换成布局对象

膨胀=inflater.inflate(出来。list_item, null);

//查找控件,一定要查找该布局对象上有的控件

持有人。textView=(textView)膨胀

.findViewById (R.id.textView1);

持有人。p_w_picpathView=(ImageView)膨胀

.findViewById (R.id.p_w_picpathView1);

//将保存控件的对象存入行布局对象的标签中

inflate.setTag(持有人);其他

} {

//让那个已经完全消失的布局对象,去替代即将出现的

膨胀=convertView;

//从行布局对象中取出之前存好的控件

=(ViewHolder)持有人inflate.getTag ();}

//根据位置从容器中取出数据

替换替换=dateList.get(位置);

//将数据显示到控件上

holder.textView.setText (myDate.title);

holder.p_w_picpathView.setImageResource (myDate.p_w_picpath);

返回膨胀;

}

//决定了listview显示的行数

@Override

公共int getCount () {

//TODO自动生成方法存根

返回dateList.size ();}


@Override

公共对象getItem (int位置){

//TODO自动生成方法存根

返回null;

}


@Override

公共长getItemId (int位置){

//TODO自动生成方法存根

返回0;

}


}


@Override公共布尔>

//膨胀菜单;这将条目添加到操作栏如果礼物。

getMenuInflater () .inflate (R.menu。主菜单);

返回true;

}




,,,,类替换{

字符串标题;

int p_w_picpath;

公共替换(字符串标题,int p_w_picpath) {

超级();

。标题=标题;

。p_w_picpath=p_w_picpath;

}

}


}


android listView性能优化