ListView的优化

来源:互联网 发布:时时彩做号软件 编辑:程序博客网 时间:2024/06/01 10:09
package com.example.list_youhua;import java.util.ArrayList;import java.util.List;import android.app.Activity;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.ListView;import android.widget.TextView;public class MainActivity extends Activity {private ListView lv1;private List<String> list;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lv1 = (ListView) findViewById(R.id.listview);list = new ArrayList<String>();list.add("張飛");list.add("劉備");list.add("关羽");list.add("張飛");list.add("劉備");list.add("关羽");list.add("張飛");list.add("劉備");list.add("关羽");list.add("張飛");list.add("劉備");list.add("关羽");lv1.setAdapter(new basadapter(MainActivity.this));}class basadapter extends BaseAdapter {private Context context;public basadapter(Context context) {this.context = context;}public int getCount() {return list.size();}public Object getItem(int position) {return list.get(position);}public long getItemId(int position) {return position;}public View getView(int position, View convertView, ViewGroup parent) {ViewHolder vh;if (convertView == null) {LayoutInflater inflater = LayoutInflater.from(context);// 实例化一个布局组件convertView = inflater.inflate(R.layout.list_item, null);vh = new ViewHolder();vh.tv = (TextView) convertView.findViewById(R.id.list_item_textView);convertView.setTag(vh);} else {vh = (ViewHolder) convertView.getTag();}System.out.println("到底产生几个view" + convertView.getId());vh.tv = (TextView) convertView.findViewById(R.id.list_item_textView);vh.tv.setText(list.get(position));return convertView;}}// 用于保存第一次查找的组件,避免下次重复查找static class ViewHolder {TextView tv;}}

0 0
原创粉丝点击