package net.coding.program.task.add;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import net.coding.program.R;
import org.androidannotations.annotations.AfterInject;
import org.androidannotations.annotations.EBean;
import org.androidannotations.annotations.RootContext;
import org.androidannotations.annotations.res.StringArrayRes;
/**
* Created by chenchao on 15/7/8.
* 任务优先级的 adpter
*/
@EBean
public class PriorityAdapter extends BaseAdapter {
final int priorityDrawableInverse[] = new int[]{
R.drawable.ic_task_priority_3,
R.drawable.ic_task_priority_2,
R.drawable.ic_task_priority_1,
R.drawable.ic_task_priority_0
};
protected LayoutInflater mInflater;
@RootContext
Context mContext;
@StringArrayRes(R.array.strings_priority_inverse)
String[] mData;
@AfterInject
void initPriorityAdapter() {
mInflater = LayoutInflater.from(mContext);
}
@Override
public int getCount() {
return mData.length;
}
@Override
public Object getItem(int position) {
return mData[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();
convertView = mInflater.inflate(R.layout.activity_task_status_list_item, parent, false);
holder.mTitle = (TextView) convertView.findViewById(R.id.title);
holder.mCheck = (ImageView) convertView.findViewById(R.id.check);
holder.mIcon = convertView.findViewById(R.id.icon);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.mTitle.setText(mData[position]);
holder.mIcon.setBackgroundResource(priorityDrawableInverse[position]);
if (position == getSelectPos())
holder.mCheck.setVisibility(android.view.View.VISIBLE);
else
holder.mCheck.setVisibility(android.view.View.GONE);
return convertView;
}
private int getSelectPos() {
TaskParams mNewParam = ((NewTaskParam) mContext).getNewParam();
return priorityDrawableInverse.length - 1 - mNewParam.priority;
}
static class ViewHolder {
View mIcon;
ImageView mCheck;
TextView mTitle;
}
}