package edu.hebtu.movingcampus.adapter;
import java.util.List;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.TextView;
import edu.hebtu.movingcampus.R;
import edu.hebtu.movingcampus.activity.wrapper.IPreference;
import edu.hebtu.movingcampus.adapter.base.AdapterBase;
import edu.hebtu.movingcampus.entity.InfoPreferItem;
import edu.hebtu.movingcampus.enums.NewsType;
import edu.hebtu.movingcampus.subjects.NewsSubject;
//主页新闻+本地通知数据展示
public class InfoPreferItemAdapter extends AdapterBase<InfoPreferItem> {
private Activity context;
private int rowlayout;
/**
* initial
*
* @param list
* :news resource
* @param context
* :app context
* @param resourceId
* :item xml view
*/
public InfoPreferItemAdapter(List<InfoPreferItem> list,
final Activity context, int resourceId) {
super(null);
this.context = context;
this.rowlayout = resourceId;
this.mList = list;
}
// position MK
@Override
public long getItemId(int position) {
return mList.get(position).getId();
}
@Override
protected View getNextView(int position, View convertView, ViewGroup parent) {
// 构造一个布局文件加载器
if (convertView == null) {
LayoutInflater inflator = ((Activity) context).getLayoutInflater();
convertView = inflator.inflate(rowlayout, null);
final ViewHolder viewHolder = new ViewHolder(convertView);
convertView.setTag(viewHolder);
}
final ViewHolder holder = (ViewHolder) convertView.getTag();
final InfoPreferItem info = (InfoPreferItem) getItem(position);
// show,saved state
if (info.getId() % 2 == 1)
convertView.setBackgroundResource(R.color.white);
holder.title.setText(info.getTitle());
holder.check.setChecked(info.isChecked(context));
holder.check.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
info.setChecked(holder.check, isChecked, context);
if (!isChecked)
IPreference.getInstance(context).removeListOfNewsSubjectById(
info.getId());
else
IPreference.getInstance(context).addListOfNewsSubject(
new NewsSubject(NewsType.values()[info.getId()]));
}
});
// return 加载数据后的iew对象
return convertView;
}
static class ViewHolder {
public ViewHolder(View convertView) {
this.title = (TextView) convertView
.findViewById(R.id.tv_title_inofo_prefer);
this.check = (CheckBox) convertView
.findViewById(R.id.cb_info_prefer);
}
public TextView title;
public CheckBox check;
}
@Override
protected void onReachBottom() {
// TODO Auto-generated method stub
}
}