package com.example.listview; 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.ImageView; import android.widget.ListView; import android.widget.BaseAdapter; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private ListView listView; //需要适配的数据 private String[]names={"京东商城","QQ","QQ斗地主","新浪微博","天猫","微信","淘宝"}; //图片集合 private int[] icons={R.drawable.jingdong,R.drawable.qq,R.drawable.dizhu,R.drawable.weibo, R.drawable.tianmao,R.drawable.weixin,R.drawable.taobao}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout); listView=findViewById(R.id.lv); //创建一个Adapter的实例 MyBaseAdapter mAdapter=new MyBaseAdapter(); listView.setAdapter(mAdapter);//设置适配器 } class MyBaseAdapter extends BaseAdapter { @Override public int getCount() { //返回ListView条目总数 return names.length; } @Override public Object getItem(int i) { //返回ListView Item的、条目代表的对象 return names[i]; } @Override public long getItemId(int i) { //得到Item的id return i; } @Override public View getView(int i, View contentview, ViewGroup viewGroup ) { //将layout2.xml文件找出并转换成View对象 // View view=View.inflate(MainActivity.this,R.layout.layout2,null);//inflate初始化 // TextView textview=(TextView)view.findViewById(R.id.tv); // textview.setText(names[i]); // ImageView imageView=(ImageView)view.//定义对象,改变背景图片 // findViewById(R.id.image); // imageView.setBackgroundResource(icons[i]); // return view; //ListView优化 ViewHolder ViewHolder holder; if (contentview==null) { contentview= LayoutInflater.from(getApplicationContext()).inflate(R.layout.layout2,viewGroup,false); holder=new ViewHolder(); holder.textView=contentview.findViewById(R.id.tv); holder.imageView=contentview.findViewById(R.id.image); contentview.setTag(holder); }else{ holder= (ViewHolder) contentview.getTag(); } holder.textView.setText(names[i]); holder.imageView.setBackgroundResource(icons[i]); return contentview; } } private class ViewHolder { TextView textView; ImageView imageView; } }
转载于:https://my.oschina.net/u/3857245/blog/1818460