1.在entity包下新建类Cateegory,代码如下:
public class Category {
private String name;//类别名称
private int imageId;//类别对应的图片
public Category(String name,int imageId){
super();
this.name=name;
this.imageId=imageId;
}
public String getName(){
return name;
}
public int getImageId(){
return imageId;
}
}
2.在layout类中新建activity_study.xml文件,主要添加了一个ListView控件,代码如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/bg_ling"
tools:context=".StudyActivity">
<ListView
android:id="@+id/lvCategories"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:listSelector="#00000000"
android:layoutAnimation="@anim/anim_layout_listview"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true">
</ListView>
</RelativeLayout>
3.在layout目录下新建category_item.xml,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
android:orientation="horizontal" >
<ImageView
android:id="@+id/category_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/category_animal"/>
<TextView
android:id="@+id/category_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="animal"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge"/>
</LinearLayout>
4.新建类CategoryAdapter,代码如下:
public class CategoryAdapter extends ArrayAdapter<Category>{
private int resourceld;
public CategoryAdapter(Context context, int resource,
List<Category> objects) {
super(context, resource, objects);
// TODO Auto-generated constructor stub
resourceld=resource;
}
/*
* 我们可以在getView()中进行判断,如果convertView为空,则使用LayoutInflater
* 去加载布局,如果不为空则直接对convertView进行重用。
*/
public View getView(int position,View convertView,ViewGroup parent){
Category category=getItem(position);//获取当前项的Category实例
View view;
ViewHolder viewHolder;
if(convertView==null){
view = LayoutInflater.from(getContext()).inflate(resourceld,null);
viewHolder = new ViewHolder();
viewHolder.categoryImage=(ImageView)view.findViewById(R.id.category_image);
viewHolder.categoryName=(TextView)view.findViewById(R.id.category_name);
view.setTag(viewHolder);
}else{
view=convertView;
viewHolder=(ViewHolder)view.getTag();//重新获取ViewHolder
}
viewHolder.categoryImage.setImageResource(category.getImageId());
viewHolder.categoryName.setText(category.getName());
return view;
}
class ViewHolder{
ImageView categoryImage;
TextView categoryName;
}
/*ImageView categoryImage=(ImageView)view.findViewById(R.id.category_image);
TextView categoryName=(TextView)view.findViewById(R.id.category_name);
categoryImage.setImageResource(category.getImageId());
categoryName.setText(category.getName());
return view;*/
}
5.在activity包下新建StudyActivity继承自Activity,代码如下:
public class CategoryAdapter extends ArrayAdapter<Category>{
private int resourceld;
public CategoryAdapter(Context context, int resource,
List<Category> objects) {
super(context, resource, objects);
// TODO Auto-generated constructor stub
resourceld=resource;
}
/*
* 我们可以在getView()中进行判断,如果convertView为空,则使用LayoutInflater
* 去加载布局,如果不为空则直接对convertView进行重用。
*/
public View getView(int position,View convertView,ViewGroup parent){
Category category=getItem(position);//获取当前项的Category实例
View view;
ViewHolder viewHolder;
if(convertView==null){
view = LayoutInflater.from(getContext()).inflate(resourceld,null);
viewHolder = new ViewHolder();
viewHolder.categoryImage=(ImageView)view.findViewById(R.id.category_image);
viewHolder.categoryName=(TextView)view.findViewById(R.id.category_name);
view.setTag(viewHolder);
}else{
view=convertView;
viewHolder=(ViewHolder)view.getTag();//重新获取ViewHolder
}
viewHolder.categoryImage.setImageResource(category.getImageId());
viewHolder.categoryName.setText(category.getName());
return view;
}
class ViewHolder{
ImageView categoryImage;
TextView categoryName;
}
/*ImageView categoryImage=(ImageView)view.findViewById(R.id.category_image);
TextView categoryName=(TextView)view.findViewById(R.id.category_name);
categoryImage.setImageResource(category.getImageId());
categoryName.setText(category.getName());
return view;*/
}
结果图如下: