package com.example.qingyangdemo.adapter;
import java.util.List;
import com.example.qingyangdemo.R;
import com.example.qingyangdemo.bean.PcFile;
import com.example.qingyangdemo.common.FileUtil;
import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
/**
* 文件和文件夹的adapter
*
* @author 赵庆洋
*
*/
public class FileAdapter extends BaseAdapter {
private List<PcFile> list;
private Context context;
private int selectedPosition = -1;
public FileAdapter(Context context) {
this.context = context;
}
public FileAdapter(Context context, List<PcFile> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
if (list == null) {
return 0;
}
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 viewHolder;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(
R.layout.file_list_item, null);
viewHolder = new ViewHolder();
viewHolder.textView = (TextView) convertView
.findViewById(R.id.file_text);
viewHolder.textSize = (TextView) convertView
.findViewById(R.id.file_text_size);
viewHolder.fileIcon = (ImageView) convertView
.findViewById(R.id.file_icon);
viewHolder.fileImage = (ImageView) convertView
.findViewById(R.id.file_image);
viewHolder.linearLayout = (LinearLayout) convertView
.findViewById(R.id.file_lin);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
if (selectedPosition == position) {
viewHolder.textView.setSelected(true);
viewHolder.linearLayout.setBackgroundColor(context.getResources()
.getColor(R.color.skyblue));
} else {
viewHolder.textView.setSelected(false);
viewHolder.linearLayout.setBackgroundColor(Color.TRANSPARENT);
}
viewHolder.textView.setText(list.get(position).getFileName());
if (list.get(position).isDirectory()) {
viewHolder.fileIcon.setImageResource(R.drawable.folder);
viewHolder.fileImage.setImageResource(R.drawable.file_folder);
viewHolder.textSize.setText("");
} else {
viewHolder.fileImage.setImageResource(R.drawable.file_down);
FileUtil.setImage(context, list.get(position).getFileName(),
viewHolder.fileIcon);
viewHolder.textSize.setText(FileUtil.formatFileSize(list.get(
position).getLength()));
}
return convertView;
}
class ViewHolder {
TextView textView;
TextView textSize;
ImageView fileIcon;
ImageView fileImage;
LinearLayout linearLayout;
}
public int getSelectedPosition() {
return selectedPosition;
}
public void setSelectedPosition(int selectedPosition) {
this.selectedPosition = selectedPosition;
}
public List<PcFile> getList() {
return list;
}
public void setList(List<PcFile> list) {
this.list = list;
}
}