listview的使用与优化

listview是一种常用的组件,用来列表展示数据,效果如下

具体的思路是:

先有一个主布局文件,里面是一个listview,再有一个子布局文件,里面包含每行要显示的控件,比如本例中,3个textview和一个imageview。

然后把子布局放到主布局里显示。

具体代码及注释如下

com.yuanlp.studentsystemandroid.os.Bundleandroid.support.v7.app.AppCompatActivityandroid.view.LayoutInflaterandroid.view.Viewandroid.view.ViewGroupandroid.widget.BaseAdapterandroid.widget.EditTextandroid.widget.ImageViewandroid.widget.ListViewandroid.widget.TextViewcom.yuanlp.studentsystem.bean.StudentInfojava.util.ArrayListjava.util.Listcom.yuanlp.studentsystem.R.id.com.yuanlp.studentsystem.R.id.com.yuanlp.studentsystem.R.id.MainActivity AppCompatActivity {

    EditText EditText EditText ListView List<StudentInfo> (Bundle savedInstanceState) {
        .onCreate(savedInstanceState)setContentView(R.layout.)initView()}

    (){
        = (EditText) findViewById(R.id.)= (EditText) findViewById(R.id.)= (EditText) findViewById(R.id.)= (ListView) findViewById(R.id.)= ArrayList<StudentInfo>()(i=i<i++){
            StudentInfo student=StudentInfo()student.setId(i)student.setName(+i)student.setPhone(+i).add(student)}

        myAdapter myadapter=myAdapter().setAdapter(myadapter)}

    (View view){

    }

    myAdapter BaseAdapter {

        () {
            .size()}

        StudentInfo (position) {
            .get(position)}

        (position) {
            }

        View (positionView convertViewViewGroup parent) {
            ViewHolder holder=(convertView==){  holder=ViewHolder()View view=LayoutInflater.(MainActivity.).inflate(R.layout.)convertView= viewholder.= (TextView)convertView. findViewById()holder.= (TextView) convertView.findViewById()holder.= (TextView) convertView.findViewById()holder.= (ImageView) convertView.findViewById(R.id.)convertView.setTag(holder)}{
                holder= (ViewHolder) convertView.getTag()}

            holder..setOnClickListener(View.OnClickListener() {
                (View v) {

                    .remove().setAdapter(myAdapter())}
            })StudentInfo student=.get(position)holder..setText(student.getId()+)holder..setText(student.getName())holder..setText(student.getPhone())convertView}
    }

    ViewHolder{
        TextView TextView TextView ImageView }

}
时间: 2024-08-25 08:50:39

listview的使用与优化的相关文章

Listview的使用与优化(中)

上篇文章简单地介绍了listview的使用和优化,都是一些常见的优化技巧.但是listview优化还有一些重要的问题,那就是图片加载,异步加载的优化,因为图片占用内存较大,listview在滑动过程中很容易产生OOM的现象,下面我来给大家解释一下图片异步加载的优化思路. 总的来说有一下几个优化思路: 1,对Imageview使用setTag()方法来解决图片错位问题,这个Tag中设置的是图片的url,然后在加载的时候取得这个url和要加载那position中的url对比,如果不相同就加载,相同就

【Android笔记】listview加载性能优化及有多种listitem布局处理方式

在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容. 用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候,会占据大量内存,影响性能,这时候就需要按需填充并重新使用view来减少对象的创建. ListView加载数据都是在 1 public View getView(int position, View convertView, ViewGroup parent) { 2 3 ...... 4 5 }

Android开发之ListView中Adapter的优化

ListView是Android开发最常用的控件,适配器adapter是将要显示的数据映射到View中并添加到ListView中显示 在实现ListView时,我们需要定义适配器如BaseAdapter.ArrayAdapter.CursorAdapter.SimpleAdapter等,并且重写其一下四个方法: 1 public int getCount(): 2 public Object getItem(int position) 3  public long getItemId(int p

listview加载性能优化

在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候,会占据大量内存,影响性能,这时候就需要按需填充并重新使用view来减少对象的创建. ListView加载数据都是在public View getView(int position, View convertView, ViewGroup parent) {}方法中进行的(要自定义listview都需

listview加载性能优化ViewHolder

在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局, 但当listview有大量的数据需要加载的时候,会占据大量内存,影响性能,这时候就需要按需填充并重新使用view来减少对象的创建. ListView加载数据都是在public View getView(int position, View convertView, ViewGroup parent) {}方法中进行的(要自定义listview都

Listview的使用与优化(下)

接上一篇文章,首先我们再来复习一个listview的缓存优化方法 1,对Imageview使用setTag()方法来解决图片错位问题,这个Tag中设置的是图片的url,然后在加载的时候取得这个url和要加载那position中的url对比,如果不相同就加载,相同就是复用以前的就不加载了 2,对于要加载的图片资源,先在内存缓存中找(原始的方法是使用SoftRefrence,最新的方法是使用android提供的Lrucache),如果找不到,则在本地缓存(可以使用DiskLrucache类)中找(也

安卓开发笔记——ListView加载性能优化ViewHolder

在前不久做安卓项目的时候,其中有个功能是爬取某网站上的新闻信息,用ListView展示,虽然做了分页,但还是觉得达不到理想流畅效果. 上网查阅了些资料,发现一些挺不错的总结,这里记录下,便于复习. 当ListView有大量的数据需要加载的时候,会占据大量内存,影响性能. 经过测试,发现耗费大量资源是在ListView去加载布局文件的时候,也就是findViewById的时候,这时我们就该考虑如何复用这个布局文件对象,以减少对象的创建. ListView加载数据是在public View getV

关于ListView基本使用与优化(转)

我们经常会在应用程序中使用列表的形式来展现一些内容,所以学好ListView是非常必需的.ListView也是Android中比较难以使用的控件,这节内容就将详细解读ListView的用法. 一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView就是实现这个功能的.第二点也不难做到,在后面的学习中读者会发现,这非常简单. 一个ListView的创建需要3个元素. (1)ListView中的每一列的View. (2)填入V

listView 利用viewholder进行优化

ListView优化:通过convertView+ViewHolder来实现,ViewHolder就是一个静态类,使用 ViewHolder 的关键好处是缓存了显示数据的视图(View),加快了 UI 的响应速度. 当我们判断 convertView == null  的时候,如果为空,就会根据设计好的List的Item布局(XML),来为convertView赋值,并生成一个viewHolder来绑定converView里面的各个View控件(XML布局里面的那些控件).再用convertVi