1、用于Adapter显示的数据。即 ,MVC中的Model(这里只做声明):
private ArrayList<SubScriptionCategory> mCategoryList;
2、MVC中的View显示Adapter代码:
private class CategoryAdapter extends BaseAdapter
{
private int onClickPos = -1;// 选中的位置
@Override
public int getCount()
{
return mCategoryList.size();
}
@Override
public Object getItem(int position)
{
return mCategoryList.get(position);
}
@Override
public long getItemId(int position)
{
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View view = getLayoutInflater().inflate(
R.layout.subscription_category_list_item, null);
ViewHolder holder = new ViewHolder();
holder.mTvCategory = (TextView) view
.findViewById(R.id.tv_subscription_category_item);
SubScriptionCategory category = mCategoryList.get(position);
Drawable drawable = null;
if (position == onClickPos)
{
view.setBackgroundColor(getResources().getColor(
R.color.color_d72625));
} else
{
view.setBackgroundColor(android.R.color.transparent);
}
if (category.categoryid.equals("1"))
{
drawable = getResources()
.getDrawable(R.drawable.menu_left_mine);
// 必须设置图片大小,否则不显示
drawable.setBounds(0, 0, drawable.getMinimumWidth(),
drawable.getMinimumHeight());
} else if (category.categoryid.equals("2"))
{
drawable = getResources().getDrawable(
R.drawable.menu_left_sports);
drawable.setBounds(0, 0, drawable.getMinimumWidth(),
drawable.getMinimumHeight());
} else if (category.categoryid.equals("3"))
{
drawable = getResources().getDrawable(
R.drawable.menu_left_female);
drawable.setBounds(0, 0, drawable.getMinimumWidth(),
drawable.getMinimumHeight());
} else if (category.categoryid.equals("4"))
{
drawable = getResources().getDrawable(
R.drawable.menu_left_integrate);
drawable.setBounds(0, 0, drawable.getMinimumWidth(),
drawable.getMinimumHeight());
}
holder.mTvCategory.setCompoundDrawables(drawable, null, null, null);
holder.mTvCategory.setText(category.name);
return view;
}
private class ViewHolder
{
private TextView mTvCategory;
}
/**
* 设置选中位置
*
* @param pos
*/
public void setSelectedPos(int pos)
{
onClickPos = pos;
// 更新显示
notifyDataSetChanged();
}
}
private ListView mLvCategory;
mLvCategory = (ListView) findViewById(R.id.lv_subscription_category);
// 设置分类适配器
mLvCategory.setOnItemClickListener(this);
// 点击分类的Item项
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id)
{
// 更新分类Item的背景显示
mCategoryAdapter.setSelectedPos(position);
}