Android 利用ViewHolder优化自定义Adapter
2016-01-26 17:21
567 查看
xml文档:
<TextView
android:id="@+id/liu_shui_hao_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:textSize="12sp"
android:text="单号" />
<TextView
android:id="@+id/chong_zhi_jine_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:paddingTop="5dp"
android:text="金额" />
<TextView
android:id="@+id/chong_zhi_date_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:textSize="12sp"
android:text="时间" />
实体类:
public class SerialNumberEntity {
//日期
private String date;
//单号
private String num;
//金额
private String sum;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getSum() {
return sum;
}
public void setSum(String sum) {
this.sum = sum;
}
@Override
public String toString() {
return num+";"+sum+";"+date;
}
}
import java.util.List;
import com.example.company.R;
import com.example.company.bean.SerialNumberEntity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class ExtractLogAdapter extends BaseAdapter {
List<SerialNumberEntity> list;
public ExtractLogAdapter(List<SerialNumberEntity> list){
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView==null){
holder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
convertView = inflater.inflate(R.layout.item_cha_xun_chong_zhi, parent, false);
holder.num = (TextView) convertView.findViewById(R.id.liu_shui_hao_textView);
holder.sum = (TextView) convertView.findViewById(R.id.chong_zhi_jine_textView);
holder.date = (TextView) convertView.findViewById(R.id.chong_zhi_date_textView);
convertView.setTag(holder);
}
holder = (ViewHolder) convertView.getTag();
SerialNumberEntity sne = list.get(position);
setValues(holder, sne);
return convertView;
}
//定义一个viewholder类
class ViewHolder{
public TextView num;
public TextView date;
public TextView sum;
}
//获取数据并将得到的数据放到textview控件上
private void setValues(ViewHolder holder, SerialNumberEntity sne) {
holder.num.setText(sne.getNum());
holder.sum.setText(sne.getSum());
holder.date.setText(sne.getDate());
}
}
<TextView
android:id="@+id/liu_shui_hao_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:textSize="12sp"
android:text="单号" />
<TextView
android:id="@+id/chong_zhi_jine_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:paddingTop="5dp"
android:text="金额" />
<TextView
android:id="@+id/chong_zhi_date_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:textSize="12sp"
android:text="时间" />
实体类:
public class SerialNumberEntity {
//日期
private String date;
//单号
private String num;
//金额
private String sum;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getSum() {
return sum;
}
public void setSum(String sum) {
this.sum = sum;
}
@Override
public String toString() {
return num+";"+sum+";"+date;
}
}
import java.util.List;
import com.example.company.R;
import com.example.company.bean.SerialNumberEntity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class ExtractLogAdapter extends BaseAdapter {
List<SerialNumberEntity> list;
public ExtractLogAdapter(List<SerialNumberEntity> list){
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView==null){
holder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
convertView = inflater.inflate(R.layout.item_cha_xun_chong_zhi, parent, false);
holder.num = (TextView) convertView.findViewById(R.id.liu_shui_hao_textView);
holder.sum = (TextView) convertView.findViewById(R.id.chong_zhi_jine_textView);
holder.date = (TextView) convertView.findViewById(R.id.chong_zhi_date_textView);
convertView.setTag(holder);
}
holder = (ViewHolder) convertView.getTag();
SerialNumberEntity sne = list.get(position);
setValues(holder, sne);
return convertView;
}
//定义一个viewholder类
class ViewHolder{
public TextView num;
public TextView date;
public TextView sum;
}
//获取数据并将得到的数据放到textview控件上
private void setValues(ViewHolder holder, SerialNumberEntity sne) {
holder.num.setText(sne.getNum());
holder.sum.setText(sne.getSum());
holder.date.setText(sne.getDate());
}
}
相关文章推荐
- Android Theme中的一些属性
- Android使用NIO开发客户端
- 浅谈 Android 开发文化
- 浅谈 Android 开发文化
- Android菜鸟进阶之路4.3 -音频文件上传
- Android 开发绕不过的坑:你的 Bitmap 究竟占多大内存?
- android图片压缩
- android开发中遇到的问题汇总
- B4A 或其它Android开发平台连接USB设备进行调试
- 如何实现android中监听来电并生成悬浮窗体提示
- Android中notifyDataSetInvalidated()和notifyDataSetChanged()
- 外层竖向ScrollView,里层横向ScrollView滑动冲突
- Android Gradle打包签名的方式
- 优化Android Studio/Gradle构建
- Android4.0以上机器的虚拟按键中显示menu键
- Android菜鸟进阶之路4.2-音频文件每隔一段时间存储一次
- Android中的错误解决。Plugin is too old
- Android 多渠道打包之混淆文件ProGuard技术详解-特别篇(打包系列教程之三)
- android之播放视频
- [原] Jenkins Android 自动打包配置