为了方便起见先写一个类来记载数据
public class Plant {
public int itemImageResId;//图像资源ID
public String itemTitle;//标题
public String itemContent;//内容
public Plant(int itemImageResId, String itemTitle, String itemContent) {
this.itemImageResId = itemImageResId;
this.itemTitle = itemTitle;
this.itemContent = itemContent;
}
}
其次就是要重写基本适配器了
public class PlantAdater extends BaseAdapter {
private Context mContext;
private ArrayList<Plant>mPlantList;
public PlantAdater(Context context,ArrayList<Plant> arrayList){
mContext = context ;
mPlantList = arrayList ;
}
@Override
public int getCount() {
return mPlantList.size();
}
@Override
public Object getItem(int position) {
return mPlantList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
//如果view未被实例化过,缓存池中没有对应的缓存
if (convertView == null) {
viewHolder = new ViewHolder();
// 由于我们只需要将XML转化为View,并不涉及到具体的布局,所以第二个参数通常设置为null
convertView = LayoutInflater.from(mContext).inflate(R.layout.baseadtater,null);
//对viewHolder的属性进行赋值
viewHolder.imageView = (ImageView) convertView.findViewById(R.id.ba_iv);
viewHolder.title = (TextView) convertView.findViewById(R.id.tv_title);
viewHolder.content = (TextView) convertView.findViewById(R.id.tv_content);
//通过setTag将convertView与viewHolder关联
convertView.setTag(viewHolder);
}else{//如果缓存池中有对应的view缓存,则直接通过getTag取出viewHolder
viewHolder = (ViewHolder) convertView.getTag();
}
// 取出bean对象
Plant plant =mPlantList.get(position);
// 设置控件的数据
viewHolder.imageView.setImageResource(plant.itemImageResId);
viewHolder.title.setText(plant.itemTitle);
viewHolder.content.setText(plant.itemContent);
return convertView;
}
class ViewHolder{ //这个内部类主要是方便利用缓存
public ImageView imageView;
public TextView title;
public TextView content;
}
}
现在轮到了Active代码
private void initspinner3() {
ArrayList<Plant> itemBeanList = new ArrayList<>();
for (int i = 0;i < 6; i ++){
Plant plant = new Plant(icom[i],starArry[i],text[i]);
itemBeanList.add(plant);
}
Spinner spinner3 = findViewById(R.id.sp_spnner3);
//设置ListView的数据适配器
PlantAdater plantAdater = new PlantAdater(this,itemBeanList);
spinner3.setAdapter(plantAdater);
spinner3.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(MainActivity.this, "你选择的是" + starArry[position], Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}