ListView的基本优化

来源:互联网 发布:淘宝特卖 编辑:程序博客网 时间:2024/05/12 12:44

首先看了网上几篇文章;初步了解LISTVIEW的基本过程 

大神文章:http://www.xuanyusong.com/archives/1252

我的总结:

实现 LISTVIE需要两点

1.创建一个LIstView  

2.为其创建一个Adapter

重点就是这个Adapter里有一个getCount的方法,ListView通得此得到这次需要显示的多少个数据,然后根据getItem()和getView 一个一个的界面画出来,当到屏幕末端就不在画了,如果我们向上滑动时,最上面的一View消失后,他会自己跑到getView(  )里有个参数是convertView 里,此时这个converView就不为空了;,然后我们得到 这个convertView 来改里面的数据即可;


看代码 

 package com.yxl.yhlistview;


import java.util.ArrayList;
import java.util.List;


import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
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 List<String> lists = new ArrayList<String>();


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

for(int i = 0; i<30; i++) {
lists.add("movie:" + i);
}

ListView listv = (ListView) findViewById(R.id.listv);
listv.setAdapter(new BaseAdapter() {

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder  holder;
if(convertView == null) {
holder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
convertView = inflater.inflate(R.layout.list_item, null);
holder.tv = (TextView) convertView.findViewById(R.id.text);
holder.tv.setText(lists.get(position));
convertView.setTag(holder);


} else {
holder = (ViewHolder) convertView.getTag();
}
  holder.tv.setText(lists.get(position));
return convertView;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return lists.get(position);
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return lists.size();
}
});

}


public class ViewHolder{
public TextView tv ;
}




}

0 0
原创粉丝点击