package com.example.qingyangdemo.adapter;
import java.io.File;
import java.util.List;
import com.example.qingyangdemo.R;
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 LocalFileAdapter extends BaseAdapter {
private List<File> files;
private Context context;
private int selectedPosition = -1;
public LocalFileAdapter(Context context) {
this.context = context;
}
public LocalFileAdapter(Context context, List<File> files) {
this.context = context;
this.files = files;
}
@Override
public int getCount() {
if (files == null) {
return 0;
}
return files.size();
}
@Override
public Object getItem(int position) {
return files.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.local_file_list_item, null);
viewHolder = new ViewHolder();
viewHolder.textView = (TextView) convertView
.findViewById(R.id.local_file_text);
viewHolder.textSize = (TextView) convertView
.findViewById(R.id.local_file_text_size);
viewHolder.fileIcon = (ImageView) convertView
.findViewById(R.id.local_file_icon);
viewHolder.fileImage = (ImageView) convertView
.findViewById(R.id.local_file_image);
viewHolder.linearLayout = (LinearLayout) convertView
.findViewById(R.id.local_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(files.get(position).getName());
if (files.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_upload);
FileUtil.setImage(context, files.get(position).getName(),
viewHolder.fileIcon);
viewHolder.textSize.setText(FileUtil.formatFileSize(files.get(
position).length()));
}
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<File> getFiles() {
return files;
}
public void setFiles(List<File> files) {
this.files = files;
}
public Context getContext() {
return context;
}
public void setContext(Context context) {
this.context = context;
}
}