ListView的简单优化
来源:互联网 发布:大淘营淘宝复制软件 编辑:程序博客网 时间:2024/05/19 06:34
package com.example.third_code;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;/** * @author HD * @date 2015-11-29 * @package_name com.example.third_code * @file_name MainActivity.java */public class MainActivity extends Activity { private List<Fruit> list = new ArrayList<Fruit>(); private FruitAdapter adapter; private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.listView); initFruit(); adapter = new FruitAdapter(MainActivity.this, R.layout.fruit_layout, R.id.textView, list); listView.setAdapter(adapter); } void initFruit() { Fruit Apple = new Fruit("Apple", R.drawable.ic_1); Fruit Banana = new Fruit("Banana", R.drawable.ic_2); Fruit Orange = new Fruit("Orange", R.drawable.ic_3); Fruit Watermelon = new Fruit("Watermelon", R.drawable.ic_4); Fruit Pear = new Fruit("Pear", R.drawable.ic_5); Fruit Grape = new Fruit("Grape", R.drawable.ic_6); Fruit Pineapple = new Fruit("Pineapple", R.drawable.ic_7); Fruit Strawberry = new Fruit("Strawberry", R.drawable.ic_8); Fruit Cherry = new Fruit("Cherry", R.drawable.ic_9); Fruit Mango = new Fruit("Mango", R.drawable.ic_10); Fruit pomelo = new Fruit("pomelo", R.drawable.ic_11); Fruit starfruit = new Fruit("starfruit", R.drawable.ic_12); Fruit muskmelon = new Fruit("muskmelon", R.drawable.ic_13); Fruit durian = new Fruit("durian", R.drawable.ic_14); Fruit pineapple = new Fruit("pineapple", R.drawable.ic_15); Fruit grape = new Fruit("grape", R.drawable.ic_16); Fruit Kiwifruit = new Fruit("Kiwifruit", R.drawable.ic_17); Fruit MyFruit = new Fruit("Kiwifruit", R.drawable.ic_18); list.add(Apple); list.add(Banana); list.add(Orange); list.add(Watermelon); list.add(Pear); list.add(Grape); list.add(Pineapple); list.add(Strawberry); list.add(Cherry); list.add(Mango); list.add(pomelo); list.add(starfruit); list.add(muskmelon); list.add(durian); list.add(pineapple); list.add(grape); list.add(Kiwifruit); list.add(MyFruit); } public class FruitAdapter extends ArrayAdapter<Fruit> { private int resourceId; public FruitAdapter(Context context, int resource, int textViewResourceId, List<Fruit> objects) { super(context, resource, textViewResourceId, objects); this.resourceId = resource; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO 自动生成的方法存根 //获得list中指定位置fruit的实例 Fruit fruit = getItem(position); //covertView是已加载的布局 if (convertView == null) { view = LayoutInflater.from(getContext()).inflate(resourceId, null); holder.imageview = (ImageView) view .findViewById(R.id.imageView); //把携带有对应这个view里面的控件的对象保存在view的标签中 view.setTag(holder); Log.i("hhhd", "convertView is not used"); } else { view = convertView; //当这次需要加载这个布局时候,取出标签 holder = (ViewHolder) view.getTag(); Log.i("hhhd", "convertView is used"); } holder.imageview.setImageResource(fruit.getImageResouceId()); holder.textView.setText(fruit.getName()); return view; }//一个用来保存在布局中控件的辅助类 class ViewHolder { ImageView imageview; TextView textView; } }}
package com.example.third_code;/** * @author HD * @date 2015-11-29 * @package_name com.example.third_code * @file_name Fruit.java */public class Fruit { private String name; private int imageResouceId; public Fruit(String name, int imageResouceId) { // TODO 自动生成的构造函数存根 this.name = name; this.imageResouceId = imageResouceId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getImageResouceId() { return imageResouceId; } public void setImageResouceId(int imageResouceId) { this.imageResouceId = imageResouceId; }}
layout_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.third_code.MainActivity" > <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView></RelativeLayout>
fruit_layout.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center"/></LinearLayout>
0 0
- ListView的简单优化
- ListView的简单使用和性能优化
- Android——ListView的简单优化
- android ListView的简单使用与优化
- ListView的简单实用及其优化
- Android之ListView的简单优化两步走
- Android开发之ListView详解 以及简单的listView优化
- Andorid中几种简单又常见的ListView的优化方案!
- listview简单使用与优化
- Android—ListView 的使用以及简单优化
- 【Android UI】ListView的使用和简单优化
- 安卓基础:ListView的简单使用和优化
- ListView的优化
- listView的优化
- ListView的优化
- Listview的优化
- listView的优化
- ListView的优化
- AJ学IOS 之第三方登录友盟实现
- 【UI进阶】IB(Interface Builder)的一点小总结
- Android:Style详解
- 1018. Public Bike Management (30) (SPFA + DFS)
- Mac下ssh连接服务器
- ListView的简单优化
- android自定义View绘制天气温度曲线
- 黑马程序员_java用java进行复制文件(考虑使用多线程),能系统自带快吗??
- ls 命令详解
- 关于web性能的思考与分享[06]——【原创】fis3构建工具使用教程(01)
- opencv(1)
- 1017. Queueing at Bank (25)——PAT (Advanced Level) Practise
- 编程心得02
- 数据库的一些操作