package com.ntp.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.ntp.model.Courseware;
import com.ntp.ui.R;
import com.ntp.util.SDCardUtil;
import org.xutils.view.annotation.ViewInject;
import org.xutils.x;
import java.util.List;
/**
* @author yanxing
* 课程课件适配器
*/
public class CoursewareAdapter extends BaseAdapter{
private List<Courseware> mCoursewareList;
private Context context;
private Callback callback;
/**
* 回调接口,内部控件事件响应不在适配器内部响应,使用者来响应
*/
public interface Callback {
/**
* @param v
* @param name 文件名
* @param path 文件路径
* @param progressBar 进度条
* @param tip 提示
*/
public void click(View v,String name,String path,ProgressBar progressBar,TextView tip);
}
public CoursewareAdapter(List<Courseware> mCoursewareList, Context context,Callback callback) {
this.mCoursewareList = mCoursewareList;
this.context = context;
this.callback=callback;
}
@Override
public int getCount() {
return mCoursewareList.size();
}
@Override
public Object getItem(int position) {
return mCoursewareList.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.listview_item_courseware, null);
viewHolder=new ViewHolder();
x.view().inject(viewHolder,convertView);
convertView.setTag(viewHolder);
}else {
viewHolder= (ViewHolder) convertView.getTag();
}
viewHolder.path.setText(mCoursewareList.get(position).getPath());
viewHolder.courseWareName.setText(mCoursewareList.get(position).getName());
if (mCoursewareList.get(position).getSize().equals("")){
viewHolder.size.setVisibility(View.INVISIBLE);
}else {
viewHolder.size.setText(mCoursewareList.get(position).getSize());
}
if (SDCardUtil.isExistSDFile("ntp/download/"+viewHolder.courseWareName.getText().toString())){//如果文件已下载
viewHolder.tip.setVisibility(View.VISIBLE);
}
final ViewHolder finalViewHolder = viewHolder;
viewHolder.download.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
callback.click(v, finalViewHolder.courseWareName.getText().toString(),
finalViewHolder.path.getText().toString(), finalViewHolder.progressBar, finalViewHolder.tip);
}
});
return convertView;
}
private class ViewHolder{
@ViewInject(R.id.myDownload)
private Button download;
@ViewInject(R.id.coursewarePath)
private TextView path;
@ViewInject(R.id.coursewareName)
private TextView courseWareName;
@ViewInject(R.id.size)
private TextView size;
@ViewInject(R.id.tip)
private TextView tip;
@ViewInject(R.id.progressBar)
private ProgressBar progressBar;
}
}