Android学习笔记---BaseAdapter优化

来源:互联网 发布:deepin是linux吗 编辑:程序博客网 时间:2024/05/20 14:25
package cn.demail.myapplication416;import android.content.Context;import android.support.v7.app.AppCompatActivity;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;import java.util.List;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ListView listView= (ListView) findViewById(R.id.newlist);        listView.setAdapter(new MyAdapter(this,new String[]{"a","b","c"},new String[]{"1","2","3"}));    }    static class MyAdapter extends BaseAdapter{        MyAdapter(Context context,String[] t,String[] b){            this.context=context;            this.t=t;            this.b=b;        }        Context context;        String[] t;        String[] b;        @Override        public int getCount() {            return t.length;        }        @Override        public Object getItem(int position) {            return t[position];        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {            TextView textView1;            TextView textView2;            if(convertView==null){//将已离开屏幕显示范围的对象进行重复利用                convertView=LayoutInflater.from(context).inflate(R.layout.tmp,null);                textView1= (TextView) convertView.findViewById(R.id.textView1);                textView2=(TextView) convertView.findViewById(R.id.textView2);                ViewHolder viewHolder =new ViewHolder(textView1,textView2);                convertView.setTag(viewHolder);            }else{                ViewHolder viewHolder= (ViewHolder) convertView.getTag();                textView1=viewHolder.textView1;                textView2=viewHolder.textView2;;            }            textView1.setText(t[position]);            textView2.setText(b[position]);            return convertView;        }        static class ViewHolder {//用于绑定Layout与TextView避免重复查找            ViewHolder(TextView textView1,TextView textView2){                this.textView1=textView1;                this.textView2=textView2;            }            TextView textView1;            TextView textView2;        }    }}

0 0
原创粉丝点击