我有一组多态层次的动物对象(即Animal> Reptile> Snake)。我想创建一个List视图,其中列表中的每个项目都根据对象类型使用不同的布局进行充气(例如爬行动物的一个项目布局,一个用于猫,一个用于灵长类动物等)。此活动只是类别,而不是实际的动物列表。所以我只想创建一个“组”项目。
要做到这一点,我试图只使用所有可能类型的动物(再次,爬行动物,灵长类动物,猫等)的列表。以List集合的形式。如何使用CustomListAdapter来完成此任务?它似乎不想让我给适配器一个字符串列表,它想要一个对象列表。
答案 0 :(得分:1)
只需使用switch或if语句检查类型并相应地膨胀:
以下是示例代码:
@Override
public View getView()
{
View row = null;
if (activity.equalsIgnoreCase("Ni_activity") || activity.equalsIgnoreCase("Current_NI_Activity") || activity.equalsIgnoreCase("Ni_Test_Activity")) {
row = inflater.inflate(R.layout.ni_spinner_row, parent, false);
} else if (activity.equalsIgnoreCase("RFTestActivity")) {
row = inflater.inflate(R.layout.spinner_row, parent, false);
} else if (activity.equalsIgnoreCase("SiteInfoFragment") || activity.equalsIgnoreCase("LayerInfoFragment")) {
row = inflater.inflate(R.layout.site_frag_spinner, parent, false);
}
TextView tvCategory = (TextView) row.findViewById(R.id.tvCategory);
tvCategory.setTypeface(null, Typeface.BOLD);
try {
tvCategory.setText(data.get(position));
} catch (Exception e) {
e.printStackTrace();
}
return row;
}