五、ListView 优化

一、Adapter

class FruitAdapter: ArrayAdapter{

constructor(context: Context?, textViewResourceId: Int, objects: List?) :super(context, textViewResourceId, objects)

override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {

var fruit:Fruit = getItem(position)

var view:View

var viewHolder:ViewHolder

if (convertView ==null) {

view = LayoutInflater.from(context).inflate(R.layout.fruit_item,parent,false)

viewHolder = ViewHolder()

viewHolder.fruitImage = view.findViewById(R.id.fruit_image)

viewHolder.fruitName  = view.findViewById(R.id.fruit_name)

view.setTag(viewHolder)

}else {

view = convertViewas View

viewHolder = view.getTag()as ViewHolder;

        }

viewHolder.fruitImage!!.setImageResource(fruit.imageId)

viewHolder.fruitName!!.setText(fruit.name)

return view!!

}

class ViewHolder {

var fruitImage:ImageView? =null

        var fruitName:TextView? =null

    }

}


listView = (ListView)findViewById(R.id.list_view);

FruitAdapter adapter =new FruitAdapter(MainActivity.this,R.layout.fruit_item,fruitLists);

listView.setAdapter(adapter);

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

    public void onItemClick(AdapterView adapterView, View view, int i, long l) {

Fruit fruit =fruitLists.get(i);

        Toast.makeText(MainActivity.this,fruit.getName(),Toast.LENGTH_SHORT).show();

    }

});

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容